16
我使用Owin和ASP.NET Identity来使用OAuth令牌来保护我的Web API方法。令牌子系统设置如下:在控制器中生成令牌
var oauthOptions = new OAuthAuthorizationServerOptions()
{
TokenEndpointPath = new PathString("/Token"),
Provider = new SimpleAuthorizationServerProvider(),
AccessTokenFormat = new TicketDataFormat(app.CreateDataProtector(typeof(OAuthAuthorizationServerMiddleware).Namespace, "Access_Token", "v1")),
RefreshTokenFormat = new TicketDataFormat(app.CreateDataProtector(typeof(OAuthAuthorizationServerMiddleware).Namespace, "Refresh_Token", "v1")),
AccessTokenProvider = new AuthenticationTokenProvider(),
RefreshTokenProvider = new AuthenticationTokenProvider(),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
app.UseOAuthAuthorizationServer(oauthOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
它适用于基于用户名/密码请求令牌,然后消耗这些令牌。但是,由于用户在点击呈现SPA的控制器时已经通过身份验证,我想在我的视图中生成令牌并将其传递给Javascript代码,而不必再次登录SPA。
所以我的问题是:我如何手动生成我的令牌,所以我可以将它包含在我的SPA视图中?
在ASP.NET Web API 2中,这已经是静态的了,现在它已经从'OAuthBearerOptions'重命名为'OAuthOptions',所以现在它的'Startup.OAuthOptions.AccessTokenFormat.Protect(ticket)'。 – Fred
您可以将'ExpiresUtc'属性设置为'Startup.OAuthOptions.AccessTokenExpireTimeSpan'。 – Fred
如何通过控制器生成刷新令牌? –