30 lines
985 B
C#
30 lines
985 B
C#
using System.Security.Claims;
|
|
using Imprink.Domain.Common.Models;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Imprink.WebApi.Controllers.Users;
|
|
|
|
[ApiController]
|
|
[Route("/api/[controller]")]
|
|
public class UserController : ControllerBase
|
|
{
|
|
[Authorize]
|
|
[HttpPost]
|
|
public IActionResult SyncUser()
|
|
{
|
|
var claims = User.Claims;
|
|
|
|
var enumerable = claims as Claim[] ?? claims.ToArray();
|
|
var user = new Auth0User
|
|
{
|
|
Sub = enumerable.FirstOrDefault(c => c.Type == "sub")?.Value ?? "",
|
|
Name = enumerable.FirstOrDefault(c => c.Type == "name")?.Value ?? "",
|
|
Nickname = enumerable.FirstOrDefault(c => c.Type == "nickname")?.Value ?? "",
|
|
Email = enumerable.FirstOrDefault(c => c.Type == "email")?.Value ?? "",
|
|
EmailVerified = enumerable.FirstOrDefault(c => c.Type == "email_verified")?.Value == "true"
|
|
};
|
|
|
|
return Ok(user);
|
|
}
|
|
} |