Beispiel #1
0
 /// <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);
 }
Beispiel #2
0
        //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));
        }
Beispiel #3
0
        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));
        }