Я использую ASP.net Web API 2 как мой бэкенд и приложение Ionic 2 в качестве моего интерфейса.Аутентификация приложения Ionic 2 с asp.net web api
Я использую Microsoft UserStore Manager для проверки подлинности моего приложения.
Он использует аутентификацию на основе токенов (пожалуйста, простите меня, если я использую неправильные имена, я все еще новичок в этом).
Мне удалось получить токен через Postman, а затем использовать этот токен в заголовках запросов, таких как «Bearer [token]», чтобы получить любые данные из моего веб-api.
Как вы можете увидеть метод является Post и Content-Type является х-WWW-форм-urlencoded.
Выполняя это, он генерирует access_token, а затем я использую этот токен, используя его в своих заголовках, чтобы получить то, что мне нужно.
В моем Ионном App я создал AUTH-service.ts с общедоступным методом под названием входом()
public login(credentials) {
if (credentials.username === null || credentials.password === null) {
let error = this.alertController.create({
title:'Lol',
message:'incomplete credentials, Fill them up and come back',
buttons: ['ok']
});
error.present();
}
else {
return new Promise(resolve => {
this.http.post(`${this.baseUrl}/token`,
{
grant_type:'password',
username:credentials.username,
password:credentials.password
}).map(res => console.log(resolve(res.json())));
});
}
}
А вот код в circles.ts, что вызывает этот метод:
login(){
let credentials = {
username:"01286220336",
password:"[email protected]$$w0rd"
}
this.authService.login(credentials)
.then(data => console.log(data))
.catch(data => console.log(data));
}
Моя проблема, когда я называю метода регистрации в Circles.ts нет вещь случается, я не знаю почему. Я пробовал в течение 2 недель, но я просто сдался.
Также я не уверен, что я внедряю метод входа в authservice.ts справа.
В конце концов, мне просто нужно как-то получить этот токен, если кто-то может поставить меня на правильный путь, я был бы очень благодарен !!
проблема формат .. Вы должны установить заголовок вам войти в систему, чтобы отправить его в нужном формате (х-WWW-форм-кодировке URL) beacuse умолчанию отправить в JSON .. и вы чтобы согласовать имя пользователя/пароль/grant_type, например .. username = xxxx & password = xxxx & grant_type = password –
return new Promise (resolve => { this.http.post ('$ {this.baseUrl}/token', ' username = $ {credentials.username} & password = $ {credentials.password} & grant_type = password' ) .map (res => resolve (res.json())) }); Вот новый фрагмент, по-прежнему не возвращающий ничего – Willy
Подождите, пока вы не вернете заголовок своего сообщения .. что-то вроде: this.http.post ($ {this.baseUrl}/token, username = $ {credentials.username} & password = $ {credentials.pass word} & grant_type = pas sword, {headers: {'Content-type:' 'x-www-form-urlencoded'}}) –