Ich versuche, eine Token-Ablaufzeit dynamisch festzulegen, aber es scheint, dass es standardmäßig auf 20 Minuten beschränkt bleibt.OAuth2 WebApi Token Ablauf
Hier ist meine ConfigureAuth:
public void ConfigureAuth(IAppBuilder app)
{
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(""),
// In production mode set AllowInsecureHttp = false
AllowInsecureHttp = true
};
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
}
Hier meine GrantResourceOwnerCredentials Methode ist:
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
var hasValidLogin = (new login().authenticate(context.UserName, context.Password, "") == "valid");
if (hasValidLogin == false)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return Task.FromResult<object>(null);
}
var oAuthIdentity = CreateIdentity(context);
var oAuthProperties = CreateProperties(context);
AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, oAuthProperties);
context.Validated(ticket);
return Task.FromResult<object>(null);
}
Und hier ist Methode mein SetProperties, wo ich den Ablauf Einstellung kann:
public static AuthenticationProperties CreateProperties(OAuthGrantResourceOwnerCredentialsContext context)
{
IDictionary<string, string> data = new Dictionary<string, string>
{
{ "client_id", context.ClientId }
};
var response = new AuthenticationProperties(data);
response.ExpiresUtc = DateTime.Now.AddMonths(1);
return response;
}
Selbst Danach kehrt das Token zurück:
{
"access_token": ".....",
"token_type": "bearer",
"expires_in": 1199,
"client_id": ".....",
".expires": "Fri, 13 Nov 2015 20:24:06 GMT",
".issued": "Fri, 13 Nov 2015 20:04:06 GMT"
}
Irgendwelche Ideen, warum ich nicht den Ablauf festlegen kann, wo ich gerade bin? Dieser Server wird eine Vielzahl von verschiedenen Clients mit unterschiedlichen Ablaufzeiten verwenden, daher dachte ich, dass dies der richtige Ort ist. Gibt es woanders, wo ich das machen sollte? Vielen Dank!
Vielen Dank! – user3726393
@Pinpoint Aber warum "verwirft der OAuth2-Autorisierungsserver immer Ihren eigenen Ablauf, wenn Sie ihn in den GrantResourceOwnerCredentials festlegen"? –
Wahrscheinlich ein Fehler (es wäre nicht der erste, und da diese Komponente nicht mehr gewartet wird, gibt es keine Korrektur) – Pinpoint