/// <summary> /// 检测token有效性 /// </summary> /// <param name="token"></param> /// <returns></returns> public static bool CheckToken(string key, out BaseAuthDto tokenObj) { tokenObj = default; if (string.IsNullOrWhiteSpace(key) || key.Split('.').Length != 3) { return(false); } if (Tokens.Value.TryGetValue(key.Split('.')[1], out string token)) { tokenObj = JsonConvert.DeserializeObject <BaseAuthDto>(Encoding.UTF8.GetString(Convert.FromBase64String(token.Split('.')[1]))); return(true); } return(false); }
//todo add login mode public async Task <IActionResult> Login([FromBody] BaseAuthDto baseAuthDto) { var ipAddress = GetRemoteIpAddress(Request); var loginDto = new LoginDto { IpAddress = ipAddress, Username = baseAuthDto.Username, Password = baseAuthDto.Password, IsReadMode = baseAuthDto.IsReadMode }; var status = await _authService.Login(loginDto); if (!status.Success) { return(BadRequest(status)); } return(Ok(status)); }
public string GenerateToken(BaseAuthDto dto) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.NameId, dto.UserName) }; var cred = new SigningCredentials(AuthOptionsHelper.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha512); var tokenDescriptor = new SecurityTokenDescriptor { Issuer = AuthOptionsHelper.ISSUER, Audience = AuthOptionsHelper.AUDIENCE, Subject = new ClaimsIdentity(claims), SigningCredentials = cred }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }