Używam tożsamości Owin i ASP.NET do korzystania z tokenów OAuth do zabezpieczania moich metod Web API. Token podsystem jest skonfigurowany jako takie:Generowanie tokena w kontrolerze
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());
Działa świetnie na żądania tokenów w oparciu o nazwę użytkownika/hasło, a następnie spożywanie tych tokenów. Jednakże, ponieważ użytkownik jest już uwierzytelniony po trafieniu kontrolera, który renderuje SPA, chciałbym wygenerować token w moim widoku i przekazać go do kodu Javascript, zamiast konieczności ponownego logowania w SPA.
Moje pytanie brzmi: w jaki sposób mogę ręcznie wygenerować mój token, aby można go było uwzględnić w widoku SPA?
W ASP.NET Web API 2 jest to już statyczne, a jego nazwa została zmieniona z 'OAuthBearerOptions' na' OAuthOptions', więc teraz jest to 'Startup.OAuthOptions.AccessTokenFormat.Protect (ticket)'. – Fred
Możesz ustawić właściwość 'ExpiresUtc' na' Startup.OAuthOptions.AccessTokenExpireTimeSpan'. – Fred
Jak wygenerować token odświeżania za pomocą kontrolera? –