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
如何通過控制器生成刷新令牌? –