public User Authenticate(string clientId) { string secret = "This is a sample secret"; var user = _users.SingleOrDefault(x => HmacConversion.CreateToken(x.ClientId, secret) == clientId); if (user == null) { return(null); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Key); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new System.Security.Claims.ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.ClientId.ToString()), new Claim(ClaimTypes.Role, "Admin"), new Claim(ClaimTypes.Version, "V3.1") }), Expires = DateTime.UtcNow.AddMinutes(5), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); user.Token = tokenHandler.WriteToken(token); return(user); }
public IActionResult Post([FromBody] User model) { User user = null; if (model.Encrypted == null || model.Encrypted == false) { string secret = "This is a sample secret"; user = _authenticateService.Authenticate(HmacConversion.CreateToken(model.ClientId, secret)); } else { user = _authenticateService.Authenticate(model.ClientId); } if (user == null) { return(BadRequest(new { message = "ClientId Invalid." })); } return(Ok(user)); }