Я хочу включить проверку подлинности cookie вместе с токенами на предъявителя в удостоверении asp.net.
У меня это работает, в некоторой степени, но по какой-то причине генерируется cookie, но токен на предъявителя не генерируется вместе с cookie. Это привело к тому, что мне пришлось использовать cookie для аутентификации на уровне API.
Я посмотрел на этот вопрос: Совместное использование токенов на предъявителя и аутентификации cookie
и это в некоторой степени помогает, поскольку я правильно заставляю свой API использовать только токены Bearer, но при этом все вызовы API возвращают 401.
В моем Startup.Auth у меня есть следующее:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Logon"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie))
}
});
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/api/v1/auth/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new ApplicationOAuthProvider(PublicClientId)
};
// Token Generation
app.UseOAuthAuthorizationServer(OAuthOptions);
app.UseOAuthBearerTokens(OAuthOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
Это прекрасно работает, так как файлы cookie генерируются, и я могу получить токен при вызове / auth / token, но я не получаю ни cookie, ни токен при обычном входе в приложение.