update
This commit is contained in:
@@ -8,6 +8,7 @@ using System.Security.Claims;
|
||||
using System.Text;
|
||||
|
||||
namespace CMSMicroservice.Infrastructure.Services;
|
||||
|
||||
public class GenerateJwtTokenService : IGenerateJwtToken
|
||||
{
|
||||
private readonly IConfiguration _configuration;
|
||||
@@ -17,30 +18,33 @@ public class GenerateJwtTokenService : IGenerateJwtToken
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
public async Task<string> GenerateJwtToken(User user,int? expiryDays=null)
|
||||
public async Task<string> GenerateJwtToken(User user, int? expiryDays = null)
|
||||
{
|
||||
var lastModified = user.LastModified ?? user.Created;
|
||||
var claims = new List<Claim>
|
||||
{
|
||||
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
||||
new(ClaimTypes.MobilePhone, user.Mobile),
|
||||
new("ReferralCode", user.ReferralCode),
|
||||
new(ClaimTypes.Name, $"{user.FirstName} {user.LastName}")
|
||||
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
||||
new(ClaimTypes.MobilePhone, user.Mobile),
|
||||
new("ReferralCode", user.ReferralCode),
|
||||
new(ClaimTypes.Name, $"{user.FirstName} {user.LastName}")
|
||||
};
|
||||
claims.Add(new Claim("MobileNumber", user.Mobile));
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(user.FirstName))
|
||||
claims.Add(new Claim("FirstName", user.FirstName));
|
||||
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(user.LastName))
|
||||
claims.Add(new Claim("LastName", user.LastName));
|
||||
|
||||
|
||||
|
||||
if (user.UserRoles != null && user.UserRoles.Any())
|
||||
{
|
||||
foreach (var userRole in user.UserRoles)
|
||||
{
|
||||
claims.Add(new Claim(ClaimTypes.Role, userRole.Role.Name));
|
||||
}
|
||||
|
||||
if (user.UserRoles.Max(x => x.Created) > lastModified)
|
||||
lastModified = user.UserRoles.Max(x => x.Created);
|
||||
if (user.UserRoles.Where(x => x.LastModified != null).Max(x => x.LastModified) > lastModified)
|
||||
@@ -51,10 +55,9 @@ public class GenerateJwtTokenService : IGenerateJwtToken
|
||||
|
||||
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JwtSecurityKey"]));
|
||||
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
|
||||
var expiry =expiryDays!=null?
|
||||
DateTime.Now.AddDays(Convert.ToInt32(expiryDays))
|
||||
:
|
||||
DateTime.Now.AddDays(Convert.ToInt32(_configuration["JwtExpiryInDays"]));
|
||||
var expiry = expiryDays != null
|
||||
? DateTime.Now.AddDays(Convert.ToInt32(expiryDays))
|
||||
: DateTime.Now.AddDays(Convert.ToInt32(_configuration["JwtExpiryInDays"]));
|
||||
|
||||
var token = new JwtSecurityToken(
|
||||
_configuration["JwtIssuer"],
|
||||
@@ -66,5 +69,4 @@ public class GenerateJwtTokenService : IGenerateJwtToken
|
||||
var _token = new JwtSecurityTokenHandler().WriteToken(token);
|
||||
return _token;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user