//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 }); } }
public async Task <IActionResult> Logout() { var token = await HttpContext.GetTokenAsync("access_token");//Result _authService.AddToken(token); return(NoContent()); }
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 // }); }