private async Task RefreshToken(JwtParams jwtParams) { var newToken = _provider.RefreshToken(jwtParams.RefreshToken); if (newToken == null) { await ResponseErrorAsync("Invalid refresh token."); return; } await ResponseSuccessAsync(newToken); }
private async Task GenerateToken(JwtParams jwtParams) { var authResult = await _authenticator.AuthenticateAsync(jwtParams); if (authResult == null || !authResult.Success) { await ResponseErrorAsync(authResult?.Message); return; } var jwtResult = await _provider.GenerateToken(authResult.Claims); jwtResult.UserInfo = authResult.UserInfo; await ResponseSuccessAsync(jwtResult); }
/// <summary> /// 获取基于JWT的Token /// </summary> /// <param name="claims"></param> /// <param name="jwtSetting"></param> /// <returns></returns> public virtual string BuildJwtToken(Claim[] claims, JwtParams jwtParams) { var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtParams.SecurityKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); // 实例化JwtSecurityToken var jwtToken = new JwtSecurityToken( issuer: jwtParams.Issuer, audience: jwtParams.Audience, claims: claims, notBefore: DateTime.Now, expires: DateTime.Now.AddDays(jwtParams.ExpireDays) .AddHours(jwtParams.ExpireHours) .AddMinutes(jwtParams.ExpireMinutes) .AddSeconds(jwtParams.ExpireSeconds), signingCredentials: creds ); // 生成 Token return(new JwtSecurityTokenHandler().WriteToken(jwtToken)); }
public ApiResult GetToken([FromServices] IConfiguration configuration) { JwtParams jwtParams = configuration.GetSection("JwtSetting").Get <JwtParams>(); DateTime expiresAt = DateTime.Now.AddDays(jwtParams.ExpireDays) .AddHours(jwtParams.ExpireHours) .AddMinutes(jwtParams.ExpireMinutes) .AddSeconds(jwtParams.ExpireSeconds); var claims = new List <Claim> { new Claim(ClaimTypes.Name, "CNX"), new Claim(JwtRegisteredClaimNames.Sid, "2"), new Claim(ClaimTypes.Expiration, expiresAt.ToString()), new Claim(ClaimTypes.Role, "Admin"), new Claim("AvatarUrl", "3") }; var token = _jWTTokenBuilder.BuildJwtToken(claims.ToArray(), jwtParams); return(new ApiResult(token)); }
public Task <AuthenticateResult> AuthenticateAsync(JwtParams jwtParams) { throw new NotImplementedException(); }