예제 #1
0
 public bool ActiveEmail(string token, int id)
 {
     if (CheckToken(token, id))
     {
         UserRefreshToken t = _tokenService.GetById(id);
         User             u = _userService.GetById(t.User);
         u.ConfirmedEmail = true;
         _userService.Update(u);
         return(true);
     }
     return(false);
 }
예제 #2
0
 public bool ValidRefreshToken(String _token)
 {
     try
     {
         JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
         JwtSecurityToken        jwtToken     = tokenHandler.ReadToken(_token) as JwtSecurityToken;
         UserRefreshToken        token        = new UserRefreshToken {
             RefreshToken = _token,
             Id           = Convert.ToInt32(jwtToken.Claims.FirstOrDefault(claim => claim.Type == "email").Value),
             User         = Convert.ToInt32(jwtToken.Claims.FirstOrDefault(claim => claim.Type == "unique_name").Value)
         };
         var key = Encoding.ASCII.GetBytes(_secret2);
         tokenHandler.ValidateToken(token.RefreshToken, new TokenValidationParameters
         {
             ValidateIssuerSigningKey = true,
             IssuerSigningKey         = new SymmetricSecurityKey(key),
             ValidateIssuer           = false,
             ValidateAudience         = false,
             ValidateLifetime         = true
         }, out SecurityToken validatedRefreshToken);
         var t = _context.GetById(token.Id);
         if (t == null || t.User != token.User || String.Compare(t.RefreshToken, _token) != 0)
         {
             throw new Exception("Token doesn't exist");
         }
         return(true);
     }catch (SecurityTokenExpiredException e)
     {
         Console.WriteLine(e.Message);
         throw new Exception(e.Message);
     }
 }