对于我的项目,我们目前使用多种身份验证方法,Cookie 身份验证、承载 OAuth 令牌和外部登录。我们正在尝试简化我们的代码库以删除 Cookie 身份验证。我们只想使用 OAuth 身份验证。在非 SPA、常规 MVC 应用程序中实现此功能的最佳方法是什么?或者这甚至是可能的吗?
我目前已经能够使用 HttpOnly Cookie 通过自定义中间件来存储和设置 Authorization 标头。但是,我现在想设置刷新令牌,因为我们需要将令牌的到期时间保持在最短。我怎样才能设置刷新令牌?
app.Use(async (context, a) =>
{
if (context.Request.Headers.ContainsKey("Authorization") == false)
{
var accessToken = context.Request.Cookies["ACCESS_TOKEN"];
if (accessToken != null)
{
context.Request.Headers.Append("Authorization", $"bearer {accessToken}");
}
}
await a.Invoke();
});
我目前正在使用来自 Identity 的内置 OAuth。
app.UseOAuthBearerTokens(OAuthOptions);