У меня периодически возникает проблема, из-за которой пользователи иногда не могут войти на мой сайт. При входе в систему они сталкиваются с приведенной ниже ошибкой при перенаправлении с сервера OpenIDDict.
error:invalid_token
error_description:The issuer associated to the specified token is not valid.
error_uri:https://documentation.openiddict.com/errors/ID2088
Я считаю, что обычно можно обновить страницу, и ошибка исчезнет, но я не ожидаю, что обычный пользователь сделает это. Я последовал примеру веб-сборки Дантуина из OpenIDDict. Странность этой проблемы заключается в том, что она возникает только в рабочей среде при развертывании в моей Службе приложений Azure.
Конфигурация клиента:
#region OpedIdDict
builder.Services.AddDbContext(options =>
{
options.UseSqlite(...);
options.UseOpenIddict();
});
builder.Services.AddAntiforgery(options =>
{
options.HeaderName = ...;
options.Cookie.Name = ...;
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.LoginPath = ...;
options.LogoutPath = ...;
options.ExpireTimeSpan = ...;
options.SlidingExpiration = false;
options.ClaimsIssuer = ...;
});
builder.Services.AddQuartz(options =>
{
options.UseMicrosoftDependencyInjectionJobFactory();
options.UseSimpleTypeLoader();
options.UseInMemoryStore();
});
builder.Services.AddQuartzHostedService(options => options.WaitForJobsToComplete = true);
builder.Services.AddOpenIddict()
.AddCore(options =>
{
options.UseEntityFrameworkCore().UseDbContext();
options.UseQuartz();
})
.AddClient(options =>
{
options.AllowAuthorizationCodeFlow();
var certificate = ...;
options.AddSigningCertificate(certificate);
options.AddEncryptionCertificate(certificate);
options.UseAspNetCore()
.EnableStatusCodePagesIntegration()
.EnableRedirectionEndpointPassthrough()
.EnablePostLogoutRedirectionEndpointPassthrough();
options.UseSystemNetHttp()
.SetProductInformation(typeof(Program).Assembly);
options.AddRegistration(new OpenIddictClientRegistration
{
Issuer = ...,
ClientId = ...,
ClientSecret = ...,
Scopes = { Scopes.Profile, Scopes.Email, Scopes.Phone },
RedirectUri = new Uri(...),
PostLogoutRedirectUri = new Uri(...)
});
});
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("CookieAuthenticationPolicy", builder =>
{
builder.AddAuthenticationSchemes(CookieAuthenticationDefaults.AuthenticationScheme);
builder.RequireAuthenticatedUser();
});
});
builder.Services.AddReverseProxy()
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"))
.AddTransforms(builder => builder.AddRequestTransform(async context =>
{
var token = await context.HttpContext.GetTokenAsync(
scheme: CookieAuthenticationDefaults.AuthenticationScheme,
tokenName: Tokens.BackchannelAccessToken);
context.ProxyRequest.Headers.Authorization = new AuthenticationHeaderValue(Schemes.Bearer, token);
}));
builder.Services.AddHostedService();
#endregion
Подробнее здесь: https://stackoverflow.com/questions/790 ... lid-issuer
Неверный эмитент Blazor OpenIDDict ⇐ C#
Место общения программистов C#
1727037000
Anonymous
У меня периодически возникает проблема, из-за которой пользователи иногда не могут войти на мой сайт. При входе в систему они сталкиваются с приведенной ниже ошибкой при перенаправлении с сервера OpenIDDict.
error:invalid_token
error_description:The issuer associated to the specified token is not valid.
error_uri:https://documentation.openiddict.com/errors/ID2088
Я считаю, что обычно можно обновить страницу, и ошибка исчезнет, но я не ожидаю, что обычный пользователь сделает это. Я последовал примеру веб-сборки Дантуина из OpenIDDict. Странность этой проблемы заключается в том, что она возникает только в рабочей среде при развертывании в моей Службе приложений Azure.
Конфигурация клиента:
#region OpedIdDict
builder.Services.AddDbContext(options =>
{
options.UseSqlite(...);
options.UseOpenIddict();
});
builder.Services.AddAntiforgery(options =>
{
options.HeaderName = ...;
options.Cookie.Name = ...;
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.LoginPath = ...;
options.LogoutPath = ...;
options.ExpireTimeSpan = ...;
options.SlidingExpiration = false;
options.ClaimsIssuer = ...;
});
builder.Services.AddQuartz(options =>
{
options.UseMicrosoftDependencyInjectionJobFactory();
options.UseSimpleTypeLoader();
options.UseInMemoryStore();
});
builder.Services.AddQuartzHostedService(options => options.WaitForJobsToComplete = true);
builder.Services.AddOpenIddict()
.AddCore(options =>
{
options.UseEntityFrameworkCore().UseDbContext();
options.UseQuartz();
})
.AddClient(options =>
{
options.AllowAuthorizationCodeFlow();
var certificate = ...;
options.AddSigningCertificate(certificate);
options.AddEncryptionCertificate(certificate);
options.UseAspNetCore()
.EnableStatusCodePagesIntegration()
.EnableRedirectionEndpointPassthrough()
.EnablePostLogoutRedirectionEndpointPassthrough();
options.UseSystemNetHttp()
.SetProductInformation(typeof(Program).Assembly);
options.AddRegistration(new OpenIddictClientRegistration
{
Issuer = ...,
ClientId = ...,
ClientSecret = ...,
Scopes = { Scopes.Profile, Scopes.Email, Scopes.Phone },
RedirectUri = new Uri(...),
PostLogoutRedirectUri = new Uri(...)
});
});
builder.Services.AddAuthorization(options =>
{
options.AddPolicy("CookieAuthenticationPolicy", builder =>
{
builder.AddAuthenticationSchemes(CookieAuthenticationDefaults.AuthenticationScheme);
builder.RequireAuthenticatedUser();
});
});
builder.Services.AddReverseProxy()
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"))
.AddTransforms(builder => builder.AddRequestTransform(async context =>
{
var token = await context.HttpContext.GetTokenAsync(
scheme: CookieAuthenticationDefaults.AuthenticationScheme,
tokenName: Tokens.BackchannelAccessToken);
context.ProxyRequest.Headers.Authorization = new AuthenticationHeaderValue(Schemes.Bearer, token);
}));
builder.Services.AddHostedService();
#endregion
Подробнее здесь: [url]https://stackoverflow.com/questions/79004300/blazor-openiddict-invalid-issuer[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия