Токен не добавляется в локальное хранилище после успешного запроса
У меня проблемы с плагином aurelia-auth. Я могу запросить токен из своего бэк-энда и получить успешный ответ - однако мое приложение не проходит проверку подлинности, и токен не сохраняется в локальном хранилище.
Auth-config.js
var config = {
baseUrl: 'http://localhost:64794',
signupUrl: 'users',
loginUrl: 'api/values/PostPassword',
tokenName: 'id_token',
loginRedirect: '#/welcome',
authHeader: 'Authorization',
authToken: 'Bearer',
storage: 'localStorage'
}
export default config;
login.js
import {AuthService} from 'aurelia-auth';
import {inject} from 'aurelia-framework';
@inject(AuthService)
export class Login {
heading = 'Login';
email = '';
password = '';
loginError = '';
constructor(auth) {
this.auth = auth;
};
login() {
return this.auth.login(this.email, this.password)
.then(response => {
console.log("Login response: " + response);
console.log("Auth: " + this.auth.isAuthenticated());
})
.catch(error => {
this.loginError = error.response;
});
};
}
Консольный вывод:
Login response: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6ImIiLCJuYmYiOjE1MDkyNzkxMzYsImV4cCI6MTUwOTI4MDMzNiwiaWF0IjoxNTA5Mjc5MTM2fQ.4QZu8pQI-K_71x_CKT9ANu1vQD7VvVUcyep51CvvCXg
login.js:27 Auth: false
Любой совет будет принят во внимание.
1 ответ
Решение
Токен (или объект, содержащий его), как ожидается, будет значением prop 'access_token' в ответе по умолчанию в aurelia-auth
так что вам нужно изменить структуру вашего ответа API на
{ access_token: YOUR_TOKEN }
если у вас нет контроля над сервером, вы все равно можете извлечь токен, переопределив конфигурацию по умолчанию. один вопрос здесь responseTokenProp
больше здесь
Кроме того, для более ясного представления о том, как токен извлекается, посмотрите здесь