feat: Aktualisiert, um Token durch Query-String zu behandeln
This commit is contained in:
parent
33ead6ebf4
commit
5ab1f24ce5
@ -12,6 +12,8 @@ namespace DigitalData.Auth.API.Config
|
|||||||
|
|
||||||
public string DefaultCookieName { get; init; } = "AuthToken";
|
public string DefaultCookieName { get; init; } = "AuthToken";
|
||||||
|
|
||||||
|
public string DefaultQueryStringKey { get; init; } = "AuthToken";
|
||||||
|
|
||||||
public required string Issuer { get; init; }
|
public required string Issuer { get; init; }
|
||||||
|
|
||||||
public bool RequireHttpsMetadata { get; init; } = true;
|
public bool RequireHttpsMetadata { get; init; } = true;
|
||||||
|
|||||||
@ -102,43 +102,16 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
|||||||
{
|
{
|
||||||
OnMessageReceived = context =>
|
OnMessageReceived = context =>
|
||||||
{
|
{
|
||||||
// if there is no token read related cookie
|
// if there is no token read related cookie or query string
|
||||||
if (context.Token is null // if there is no token
|
if (context.Token is null) // if there is no token
|
||||||
&& context.Request.Cookies.TryGetValue(apiParams!.DefaultCookieName, out var token) // get token from cookies
|
{
|
||||||
&& token is not null)
|
if (context.Request.Cookies.TryGetValue(apiParams!.DefaultCookieName, out var cookieToken) && cookieToken is not null)
|
||||||
context.Token = token;
|
context.Token = cookieToken;
|
||||||
|
else if (context.Request.Query.TryGetValue(apiParams.DefaultQueryStringKey, out var queryStrToken))
|
||||||
|
context.Token = queryStrToken;
|
||||||
|
}
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
},
|
}
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
|
||||||
.AddJwtBearer(options =>
|
|
||||||
{
|
|
||||||
options.RequireHttpsMetadata = apiParams!.RequireHttpsMetadata;
|
|
||||||
options.ClaimsIssuer = apiParams!.Issuer;
|
|
||||||
options.Audience = apiParams.LocalConsumer.Audience;
|
|
||||||
options.TokenValidationParameters = new()
|
|
||||||
{
|
|
||||||
ValidateIssuer = true,
|
|
||||||
ValidIssuer = apiParams!.Issuer,
|
|
||||||
ValidateAudience = true,
|
|
||||||
ValidAudience = apiParams.LocalConsumer.Audience,
|
|
||||||
ValidateLifetime = true,
|
|
||||||
IssuerSigningKey = issuerSigningKeyInitiator?.Value
|
|
||||||
};
|
|
||||||
|
|
||||||
options.Events = new JwtBearerEvents
|
|
||||||
{
|
|
||||||
OnMessageReceived = context =>
|
|
||||||
{
|
|
||||||
// if there is no token read related cookie
|
|
||||||
if (context.Token is null // if there is no token
|
|
||||||
&& context.Request.Cookies.TryGetValue(apiParams!.DefaultCookieName, out var token) // get token from cookies
|
|
||||||
&& token is not null)
|
|
||||||
context.Token = token;
|
|
||||||
return Task.CompletedTask;
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user