Как прочитать декодированный токен из localStorage, используя auth0 / angular -jwt - PullRequest
0 голосов
/ 17 марта 2020

Я попытался декодировать токен, используя auth0 / angular -jwt, сгенерированный из ASP. NET core API. но проблема заключается в том, что после декодирования имя токена и идентификатор не определены.

в методе действия при входе в систему

       var userFromRepo = await _repo.Login(loginViewModel.Username, loginViewModel.Password);
        if (userFromRepo == null)
        {
            return Unauthorized();
        }
        var claims = new[]
        {
            new Claim(ClaimTypes.Name,userFromRepo.Username),
            new Claim(ClaimTypes.NameIdentifier,userFromRepo.Id.ToString())
        };
        var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["AuthSettings:Key"]));
        var token = new JwtSecurityToken(
            issuer: _config["AuthSettings:Issuer"],
        audience: _config["AuthSettings:Audience"],
        claims: claims,
        expires: DateTime.Now.AddDays(1),
        signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256)
        );
        var tokenAsString = new JwtSecurityTokenHandler().WriteToken(token);
        return Ok(new {
            token = tokenAsString
        });

в AuthService на стороне клиента

  jwtHelper = new JwtHelperService();
  decodedToken:any;
  constructor(private _http: HttpClient) {}

  login(model: any) {
    return this._http.post("http://localhost:5000/api/auth/" + "login", model).pipe(
      map((response: any) => {
        debugger;
        const user = response;
        if (user) {
          localStorage.setItem("token", user.token);
          this.decodedToken = this.jwtHelper.decodeToken(user.token);
          console.log(this.decodedToken);
        }
      })
    );
  }

после декодирования токена это возвращает объект, подобный

{http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name: "sasha", http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier: "1", exp: 1584513110, iss: "IssuerName", aud: "AudienceName"}
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name: "sasha"
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier: "1"
exp: 1584513110
iss: "IssuerName"
aud: "AudienceName"
__proto__: Object
}

Как прочитать эти значения имени или идентификатора имени

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...