private async Task <string> TakeUserIdByAccessToken() { var access_token = await HttpContext.GetTokenAsync("access_token"); string userId = ""; if (string.IsNullOrEmpty(access_token)) { userId = "Unauthorized"; } // ------- Extract userId (sub) from access token string accessTokenString = new JwtSecurityTokenHandler().ReadJwtToken(access_token).ToString(); string toBeSearched = "\"sub\":\""; userId = accessTokenString.Substring(accessTokenString.IndexOf(toBeSearched) + toBeSearched.Length); userId = userId.Substring(0, userId.IndexOf("\"")); return(userId); }
//Создание токена private string GenerateJSONWebToken(User user) { var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Jwt:Keyqwertyuytrewertyuiqwe")); var credintalis = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256); var claims = new[] { new Claim(JwtRegisteredClaimNames.Email, user.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(ClaimTypes.Role, user.Role) }; var token = new JwtSecurityToken( issuer: "Jwt:Issuer", audience: "Jwt:Issuer", claims, expires: DateTime.Now.AddHours(24), signingCredentials: credintalis); string encodetoken = new JwtSecurityTokenHandler().WriteToken(token); string token_return = encodetoken.Substring(encodetoken.LastIndexOf('.') + 1); return(token_return); }