EYJHBGCIOIJIUZ ..../P>
< /blockquote>
Ich weise auf diese Weise Token zu, wenn sich ein Benutzer beispielsweise auf der Website anmeldet. < /p>
Code: Select all
token = "eyJhbGciOiJIUz....";
var options = new CookieOptions
{
HttpOnly = true,
Secure = false,
SameSite = SameSiteMode.Strict
};
httpContext.Response.Cookies.Append(Extension.AuthorizationName, token, options);
< /code>
Wenn mir das Token für das Cookie zugewiesen wird und es festgelegt ist. Danach werde ich an die Seite "Dashboard" gesendet, auf der ich < /p>
habe@attribute [Authorize]
Code: Select all
builder.Services.AddHttpClient(Extension.AuthClient,
client =>
{
client.BaseAddress = new Uri(APIHelper.BackendUrl);
}).AddHttpMessageHandler();
//JWT token
var Audience = builder.Configuration["JwtSettings:Audience"];
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = APIHelper.BackendUrl;
options.Audience = Audience;
options.RequireHttpsMetadata = APIHelper.RequireHttpsMetadata;
});
builder.Services.AddAuthorization();
Code: Select all
private readonly NavigationManager _navigationManager;
private readonly IHttpContextAccessor httpContextAccessor;
public AuthHandler(NavigationManager navigationManager, IHttpContextAccessor _httpContextAccessor)
{
_navigationManager = navigationManager;
httpContextAccessor = _httpContextAccessor;
}
protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var token = httpContextAccessor.HttpContext.Request.Headers[Extension.AuthorizationName];
if (!string.IsNullOrEmpty(token))
{
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
}
var response = await base.SendAsync(request, cancellationToken);
// Hvis tokenet udløber (401), send brugeren til login
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
_navigationManager.NavigateTo("/login", true); // Omdiriger til login
}
return response;
}
Code: Select all
var Issuer = builder.Configuration["JwtSettings:Issuer"];
var Audience = builder.Configuration["JwtSettings:Audience"];
var Token = builder.Configuration["JwtSettings:Token"];
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidIssuer = Issuer,
ValidateAudience = true,
ValidAudience = Audience,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Token)),
ValidateIssuerSigningKey = true
};
});
builder.Services.AddAuthorization();
< /code>
Das [url=viewtopic.php?t=15738]Problem[/url] ist im Moment, dass ich nicht auf die Dashboard -Seite zugreifen kann, da es mir 401 gibt. Wenn ich auf meiner Skalar -API teste, indem ich das Token nehme und es sende, bekomme ich mit dem Token Zugriff auf die API. Die Frage ist also: Wie kann ich nicht auf die Seite zugreifen, auf der @Attribute [autorize]