public JwtPacket Register([FromBody] Mercury.Models.Users user) { //add info from packet to DB context.Users.Add(user); //save changes context.SaveChanges(); //returns token to user return(CreateJwtPacket(user)); }
//creates the users token //the token is what verifies if the user is currently logged in JwtPacket CreateJwtPacket(Mercury.Models.Users user) { var origin = user.Id; var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes("this is the secret phrase")); var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256); var claims = new Claim[] { new Claim(JwtRegisteredClaimNames.Sub, user.Id.ToString()) }; var jwt = new JwtSecurityToken(claims: claims, signingCredentials: signingCredentials); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); return(new JwtPacket() { Token = encodedJwt, UserName = user.UserName, FirstName = user.FirstName, LastName = user.LastName, Id = origin.ToString() }); }