public async Task <JWTAuthorizationResult> RefreshToken(string userId, string email) { var userById = await _userManager.FindByIdAsync(userId); var userByEmail = await _userManager.FindByEmailAsync(email); if (userByEmail == null || userById == null) { return(JWTAuthorizationResult.Failure(new List <string> { "Brak użytkownika w bazie" })); } else if (userById.Id != userByEmail.Id) { return(JWTAuthorizationResult.Failure(new List <string> { "Token nie należy do użytkownika" })); } else if (userByEmail != null && userById != null && userById.Id == userByEmail.Id) { var apiresult = CreateToken(userByEmail); await _userManager.SetAuthenticationTokenAsync(userByEmail, userByEmail.Email, "JWT", apiresult.Token); return(apiresult); } else { return(JWTAuthorizationResult.Failure(new List <string> { "Niepoprawne dane" })); } }
public async Task <(JWTAuthorizationResult Result, string UserName, string Email)> LoginUserAsync(string email, string password) { var user = await _userManager.FindByEmailAsync(email); if (user == null) { return(JWTAuthorizationResult.Failure(new string[] { "Konto nie istnieje" }), "", ""); } if (!user.EmailConfirmed) { return(JWTAuthorizationResult.Failure(new string[] { "Niepotwierdzony adres email" }), "", ""); } var signResult = await _userManager.CheckPasswordAsync(user, password); if (signResult) { var apiresult = CreateToken(user); await _userManager.SetAuthenticationTokenAsync(user, user.Email, "JWT", apiresult.Token); return(apiresult, user.UserName, user.Email); } else { return(JWTAuthorizationResult.Failure(new string[] { "Niepoprawne hasło" }), "", ""); } }
private JWTAuthorizationResult CreateToken(ApplicationUser user) { var symmetricSecurityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_authSettings.AuthKey)); var signingCredentials = new SigningCredentials(symmetricSecurityKey, SecurityAlgorithms.HmacSha256); var apiresult = JWTAuthorizationResult.Success(new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken( issuer: _authSettings.Issuer, audience: _authSettings.Audience, claims: GetTokenClaims(user), notBefore: DateTime.Now, expires: DateTime.Now.Add(TimeSpan.FromSeconds(_authSettings.Expire)), signingCredentials: signingCredentials ))); return(apiresult); }