Example #1
0
        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"
                }));
            }
        }
Example #2
0
        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" }), "", "");
            }
        }
Example #3
0
        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);
        }