95fdb59ea6
Former-commit-id: b39a328747c2f3414dc52e009fb6f0aa80ca2492
29 lines
890 B
C#
29 lines
890 B
C#
using System.Net.Http;
|
|
using System.Security.Claims;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
namespace BlazingPizza.Client
|
|
{
|
|
public class ServerAuthenticationStateProvider : AuthenticationStateProvider
|
|
{
|
|
private readonly HttpClient _httpClient;
|
|
|
|
public ServerAuthenticationStateProvider(HttpClient httpClient)
|
|
{
|
|
_httpClient = httpClient;
|
|
}
|
|
|
|
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
|
|
{
|
|
var userInfo = await _httpClient.GetJsonAsync<UserInfo>("user");
|
|
|
|
var identity = userInfo.IsAuthenticated
|
|
? new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, userInfo.Name) }, "serverauth")
|
|
: new ClaimsIdentity();
|
|
|
|
return new AuthenticationState(new ClaimsPrincipal(identity));
|
|
}
|
|
}
|
|
}
|