Я использую OAuth2, тип предоставления "учетные данные клиента" в WEB API C #.
Здесь я хочу сохранить одинаковый access_token для всех запросов , и он изменится через 1 день
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1)
Я реализовал логику, но для каждого запроса я получаю новый access_token.
public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
string clientId;
string clientSecret;
context.TryGetFormCredentials(out clientId, out clientSecret);
if (clientId == "1234" && clientSecret == "12345")
{
context.Validated(clientId);
}
return base.ValidateClientAuthentication(context);
}
public override Task GrantClientCredentials(OAuthGrantClientCredentialsContext context)
{
var client = new ClientService { clientId = "1234", clientSecret = "12345", ClientName = "test" };
var oAuthIdentity = new ClaimsIdentity(context.Options.AuthenticationType);
var props = new AuthenticationProperties(new Dictionary<string, string>
{
{
"ExtraInfo", "This is extra info"
}
});
var ticket = new AuthenticationTicket(oAuthIdentity, props);
context.Validated(ticket);
return base.GrantClientCredentials(context);
}
public override Task TokenEndpoint(OAuthTokenEndpointContext context)
{
foreach (KeyValuePair<string, string> property in context.Properties.Dictionary)
{
context.AdditionalResponseParameters.Add(property.Key, property.Value);
}
return Task.FromResult<object>(null);
}
Ответ 1:
{
"access_token": "6k91AY7FHxGDZYh5ShDkPj04pzYWacQdE58ZB2CVcxsPMK85txtbLhdanSAprkAHmwQeVYQEe-ifBiy5T0S-Y9BcX1oZqyx_2wqYHYB3xJDcCLl2KHSLxOqLGURBP6NmwhlpPiHrLsRMaNvvOTqGAWt0bdAMrmHfsNKoACH6k6e5ovPEo1zrZDhgiv74JBh0tXgw74zdH3SriQucvZEgwtw3vhb19X3sitA9IFzu5Q8",
"token_type": "bearer",
"expires_in": 86399,
"ExtraInfo": "This is extra info",
".issued": "Sat, 13 Oct 2018 14:55:33 GMT",
".expires": "Sun, 14 Oct 2018 14:55:33 GMT"
}
Ответ2:
{
"access_token": "nSvKMwTs_VyoOIzRZ4FfGBzMYN_eq1utt0RE-Md9aYvFjV9-x95_3E9CRpW8_Mr-sJ-Cidiq03fJ0JV7ZHI3arwMJ0WGmpG3gSyxZE_vaYSkG-sUrOLZ2dx9vh1n1P-9rq4BJUWUKLICDtkd8P7CEun9EwX0g2r0ZkhGrvmifOLOiPbUdBob85H7dtHndm2GKHj3LSw_ePO6WQcCwDDWYJsEmaAXLo8et2IfzoOjp3o",
"token_type": "bearer",
"expires_in": 86399,
"ExtraInfo": "This is extra info",
".issued": "Sat, 13 Oct 2018 15:00:20 GMT",
".expires": "Sun, 14 Oct 2018 15:00:20 GMT"
}
В обоих ответах access_token различен, но я хочу один и тот же токен доступа.
Есть ли способ, которым я могу получить тот же access_token для всех запросов
Примечание. Я использую Почтальон для проверки ответа