角度认证服务 - 基于TOKEN

问题描述 投票:0回答:2

在我的AuthenticationService我有:

@Injectable()
export class AuthenticationService {
constructor(private http: HttpClient) { }

login(username: string, password: string) {                                
    return this.http.post<any>
    (`${environment.apiUrl}/token`, "grant_type=password&username="+username+"&password="+password).pipe(map(user => {                
            // login successful if there's a jwt token in the response                      
            if (user && user.token) {
                // store user details and jwt token in local storage to keep user logged in between page refreshes
                localStorage.setItem('currentUser', JSON.stringify(user));                    
            }                                
            return user;
        }));
}

if (user && user.token) ... user.token返回undefined然后不创建currentUser localStorage。

如果我只写:if (user) ...它的工作原理并生成access_token,如下所示:

access_token:"eiGcvwEa0SsL0xml2Y5BcnR5W1g-vTniUB96YPFsnWe7AwG-pEmtLaOf1nurnYOFFJ-qpax5QceWD9qkEtXJIWU91DFvDwEOrrRqIrb1-gBFnspTk6dE6YjIXpZqkcA1JHWJezQx0dfqBINhZ08qocfIrqK0IqqOvguRh9-PUJCPRMg4JaYh3CJGAZVqbFi8WiO4OwRwrBVqXXGWSHqoCUgHxWDYolCZE7axCLDdbTcbCz2IluemsA0kdmvyQ2laub3iELFN-5m7dAvpCYtFvHjt2qkYijH_v2E3uV5dux5e_txj4XSTzoT8kikoCn7I"
expires_in:59
refresh_token:"c723ec64-c90e-482d-8292-390214d5324b"
token_type:"bearer"

我需要从user.token获取令牌,但我不知道我错在哪里。

angular api authentication web token
2个回答
0
投票

你确定user对象有属性token吗? (尝试将user记录到控制台)。

也许您正在寻找的房产是access_token


0
投票

因为该属性是access_token而不是token。试试if(user && user.access_token)

© www.soinside.com 2019 - 2024. All rights reserved.