Add project files.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
namespace MyOffice.Web.Identity;
|
||||
|
||||
using Data.Repositories.Users;
|
||||
using IdentityModel;
|
||||
using IdentityServer4.Models;
|
||||
using IdentityServer4.Services;
|
||||
using System.Security.Claims;
|
||||
|
||||
public class ProfileService : IProfileService
|
||||
{
|
||||
private readonly IUserRepository _userRepository;
|
||||
|
||||
public ProfileService(
|
||||
IUserRepository userRepository
|
||||
)
|
||||
{
|
||||
_userRepository = userRepository;
|
||||
}
|
||||
|
||||
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
|
||||
{
|
||||
var sub = context.Subject.Claims.FirstOrDefault(x => x.Type == JwtClaimTypes.Subject);
|
||||
if (sub != null && Guid.TryParse(sub.Value, out var id))
|
||||
{
|
||||
var user = await _userRepository.GetUserAsync(id);
|
||||
if (user != null)
|
||||
if (context.RequestedClaimTypes.Contains(JwtClaimTypes.Email))
|
||||
context.IssuedClaims.Add(new Claim(JwtClaimTypes.Email, user.Email));
|
||||
}
|
||||
}
|
||||
|
||||
public Task IsActiveAsync(IsActiveContext context)
|
||||
{
|
||||
return Task.FromResult(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user