Я пытаюсь установить время истечения срока годности динамически, но похоже, что он просто продолжает дефолт до 20 минут.OAuth2 Срок действия токена WebApi
Вот мой 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);
}
Вот мой метод GrantResourceOwnerCredentials:
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);
}
А вот мой SetProperties метод, где я могу установки истечения срока действия:
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;
}
Даже после этого маркер возвращается:
{
"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"
}
Любые идеи, почему я не могу установить истечение, где я сейчас? Этот сервер будет принимать разные клиенты с разными сроками истечения срока, поэтому я решил, что это место для этого. Есть ли где-то еще, что я должен делать это? Благодаря!
Большое вам спасибо! – user3726393
@Pinpoint Но почему «сервер авторизации OAuth2 всегда отбрасывает свое собственное истечение, когда вы устанавливаете его в GrantResourceOwnerCredentials»? –
Вероятно, ошибка (она не будет первой, и поскольку этот компонент больше не поддерживается, нет исправления) – Pinpoint