Esempio n. 1
0
        //scenario 1 : get the access-token by username and password
        private ResponseData DoPassword(AuthParameters parameters)
        {
            var user = _authService.GetUserByEmailAndPassword(parameters.email, parameters.password);

            if (user == null)
            {
                return(new ResponseData
                {
                    Code = "902",
                    Message = "invalid user infomation",
                    Data = null
                });
            }

            var refresh_token = Guid.NewGuid().ToString().Replace("-", "");

            var rToken = _authService.GenerateRefreshTokenModel(
                parameters.client_id,
                parameters.client_secret,
                user.UserName,
                refresh_token,
                user.UserId);


            //store the refresh_token
            if (_authService.AddToken(rToken))
            {
                if (_authService.UpdateLastAccess(user.UserId))
                {
                    return new ResponseData
                           {
                               Code    = "999",
                               Message = "OK",
                               Data    = GetJwt(parameters.client_id, refresh_token, user)
                           }
                }
                ;
                else
                {
                    return new ResponseData
                           {
                               Code    = "909",
                               Message = "can not update last access in database",
                               Data    = null
                           }
                };
            }
            else
            {
                return(new ResponseData
                {
                    Code = "909",
                    Message = "can not add token to database",
                    Data = null
                });
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> Logout()
        {
            var token = await HttpContext.GetTokenAsync("access_token");//Result

            _authService.AddToken(token);

            return(NoContent());
        }
Esempio n. 3
0
        public async Task <IActionResult> Login([FromBody] User login)
        {
            // Check login username & password.
            User user = await _authService.CheckLogin(login.Username, login.Password);

            if (user != null)
            {
                // Randomize a new token string.
                var token = Guid.NewGuid().ToString();

                // Get expiry minutes in config file.
                int expiryInMinutes = Convert.ToInt32(_configuration["Jwt:ExpiryInMinutes"]);
                var expiration      = DateTime.Now.AddMinutes(expiryInMinutes);

                // Save token to the database.
                var auth = new Auth
                {
                    Token      = token,
                    Expiration = expiration,
                    UserId     = user.UserId
                };
                await _authService.AddToken(auth);

                // Return the token data.
                return(Ok(new
                {
                    token,
                    expiration,
                    user.UserId
                }));
            }
            return(Unauthorized("Username or Password is not correct."));

            //var claim = new[] {
            //    new Claim(JwtRegisteredClaimNames.Sub, user.Username)
            //};
            //var signinKey = new SymmetricSecurityKey(
            //  Encoding.UTF8.GetBytes(_configuration["Jwt:SigningKey"]));

            //int expiryInMinutes = Convert.ToInt32(_configuration["Jwt:ExpiryInMinutes"]);
            //var expiration = DateTime.UtcNow.AddMinutes(expiryInMinutes);

            //var token = new JwtSecurityToken(
            //  issuer: _configuration["Jwt:Site"],
            //  audience: _configuration["Jwt:Site"],
            //  expires: expiration,
            //  signingCredentials: new SigningCredentials(signinKey, SecurityAlgorithms.HmacSha256)
            //);

            //var userToken = new UserTokens
            //{
            //    Token = new JwtSecurityTokenHandler().WriteToken(token),
            //    Expiration = DateTime.UtcNow.AddMinutes(expiryInMinutes)
            //};
            //await _commonRepository.AddUserToken(userToken);

            //return Ok(
            //  new
            //  {
            //      token = new JwtSecurityTokenHandler().WriteToken(token),
            //      expiration = token.ValidTo
            //  });
        }