public async Task <IActionResult> adminLogin([FromBody] userLoginDTO userLogin) { var user = await user_REP.lAdminlogin(userLogin.Mail, userLogin.Password); var Token = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(iconfiguration.GetSection("AppSettings:Token").Value); if (user == null) { return(Unauthorized()); } var TokenThis = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.Mail) }), Expires = DateTime.Now.AddHours(3), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature) }; var CreateTokennn = Token.CreateToken(TokenThis); var TokenString = Token.WriteToken(CreateTokennn); var UserId = user.Id; return(Ok(TokenString + "?" + UserId)); }
public async Task <IActionResult> Login(userLoginDTO loginDto) { var loginUser = await _repo.Login(loginDto.username.ToLower(), loginDto.password); if (loginUser == null) { return(Unauthorized()); } // Contains classes that implement claims-based identity in the .NET Framework, // including classes that represent claims, claims-based identities, and claims-based principals var claims = new[] { new Claim(ClaimTypes.NameIdentifier, loginUser.Id.ToString()), // Knownd Claim Types new Claim(ClaimTypes.Name, loginUser.UserName) }; //Symmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both encryption // of plaintext and decryption of ciphertext. //The keys may be identical or there may be a simple transformation to go between the two keys. var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); // Create Digital Key // Represents the cryptographic key and security algorithms that are used to generate a digital signature. var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); // SecurityTokenDescriptor // This is a place holder for all the attributes related to the issued token var tokenDesc = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), // Gets or sets the output claims to be included in the issued token. Expires = System.DateTime.Now.AddDays(1), SigningCredentials = creds // Gets or sets the credentials that are used to sign the token. }; // JwtSecurityTokenHandler // A SecurityTokenHandler designed for creating and validating JSON Web Tokens (JWT). var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDesc); // Creates a JwtSecurityToken based on values found in the SecurityTokenDescriptor //System.Security.Claims Namespace // Contains classes that implement claims-based identity in the .NET Framework, including classes that represent claims, // claims-based identities, and claims-based principals. return(Ok(new { token = tokenHandler.WriteToken(token) })); // Writes the JwtSecurityToken as a JSON Compact serialized format string. }