...
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
using System;
|
||||
using Hushian.Application.Constants;
|
||||
using Hushian.Application.Models;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -18,5 +23,30 @@ namespace Hushian.Application.Services
|
||||
{
|
||||
return d.Hour.ToString() + ":" + d.Minute.ToString();
|
||||
}
|
||||
public static JwtSecurityToken GenerateToken(this JwtSettings _jwtSettings,string UserName, int userId, string Role)
|
||||
{
|
||||
var claims = new[]
|
||||
{
|
||||
new Claim(JwtRegisteredClaimNames.Sub,UserName),
|
||||
new Claim(ClaimTypes.NameIdentifier, UserName),
|
||||
new Claim(CustomClaimTypes.Uid,userId.ToString()),
|
||||
new Claim(ClaimTypes.Role, Role)
|
||||
};
|
||||
|
||||
|
||||
var symmetricSecurityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtSettings.Key));
|
||||
var signingCredentials = new SigningCredentials(symmetricSecurityKey, SecurityAlgorithms.HmacSha256);
|
||||
var jwtSecurityToken = new JwtSecurityToken(
|
||||
issuer: _jwtSettings.Issuer,
|
||||
audience: _jwtSettings.Audience,
|
||||
claims: claims,
|
||||
expires: DateTime.UtcNow.AddMinutes(_jwtSettings.DurationInMinutes),
|
||||
signingCredentials: signingCredentials);
|
||||
|
||||
//user.Token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);
|
||||
//var resultupdateuser = await _userManager.UpdateAsync(user);
|
||||
|
||||
return jwtSecurityToken;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user