public async Task <IActionResult> Login(UserForLoginDto UserForLoginDto) { var user = await _repo.Login(UserForLoginDto.Username.ToLower() , UserForLoginDto.Password.ToLower()); if (user != null) { //Generate and Send JWT Token to Client. var claims = new[] { new Claim(type: ClaimTypes.NameIdentifier, value: user.Id.ToString()), new Claim(type: ClaimTypes.Name, value: user.Username) }; var key = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token") .Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateJwtSecurityToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token), currentUser = _mapper.Map <UserForListDto>(user) })); } return(Unauthorized()); }
public async Task <IActionResult> Login(LoginDto user) { User u = await _repo.Login(user.Name, user.Password); // Unauthorized(); if (u == null) { return(BadRequest("Cannot log in")); } //create JWT, claims, credential, tokenDescriptor var alist = new string[] { "apple", "orange" }; var claims = new[] { new Claim(ClaimTypes.NameIdentifier, u.Id.ToString()), new Claim(ClaimTypes.Name, u.Name), new Claim(ClaimTypes.UserData, string.Join(",", alist)) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); // hash var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); // issue token var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds, Issuer = "google" }; // display token var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateJwtSecurityToken(tokenDescriptor); return(Ok(new { issueToken = tokenHandler.WriteToken(token) })); }
private AuthorizationTokensModel BuildAccessTokenModel(User user) { var tokenHandler = new JwtSecurityTokenHandler(); //todo: redo to generate token using private key var key = Encoding.ASCII.GetBytes(_configuration.GetSection("AppSettings:Token").Value); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.Username), }), Expires = DateTime.Now.AddHours(8), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature) }; var token = tokenHandler.CreateJwtSecurityToken(tokenDescriptor); return(new AuthorizationTokensModel { AccessToken = tokenHandler.WriteToken(token), ExpiresAt = token.ValidTo }); }
public async Task <IActionResult> Login(UserLoginDto userLoginDto) { var userFromRepo = await _repo.Login(userLoginDto.Username, userLoginDto.Password); if (userFromRepo == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetSection("AppSettings:Token").Value)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescripton = new SecurityTokenDescriptor() { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = credentials }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateJwtSecurityToken(tokenDescripton); return(Ok(new { token = tokenHandler.WriteToken(token) })); }