Хранить токен без повторной генерации каждого запроса - Web API - PullRequest
0 голосов
/ 30 января 2019

У меня есть API 1 и API 2

API 2 требуется токен, при этом я получу токен от Identity и отправлю его на API 2

Нопроблема сейчас, я понятия не имею, где хранить токен в API 1.Таким образом, временное решение заключается в том, что я сохраняю запрос на токен каждый раз, когда отправляю запрос на API 2.

Токен получил истекшее время, если он уже истек, генерируем новый токен

Это можно сделать?

Мой фрагмент кода

  var pairs = new List < KeyValuePair < string,
  string >> {
   new KeyValuePair < string,
   string > ("client_id", "spa"),
   new KeyValuePair < string,
   string > ("client_secret", "secretkey"),
   new KeyValuePair < string,
   string > ("grant_type", "password"),
   new KeyValuePair < string,
   string > ("username", "test@test"),
   new KeyValuePair < string,
   string > ("Password", "test1234")


  };
 var content = new FormUrlEncodedContent(pairs);

 using(var client = new HttpClient()) {
  var response = client.PostAsync("https://myidentity.com/" + "connect/token", content).Result;
  var result = response.Content.ReadAsStringAsync().Result;

  var t = JsonConvert.DeserializeObject < Token > (result);

  //Sent request to API 2
 }

Мой класс токенов

public class Token
{
    public string access_token { get; set; }
    public string token_type { get; set; }
    public int expires_in { get; set; }
    public string userName { get; set; }
    [JsonProperty(".issued")]
    public string issued { get; set; }
    [JsonProperty(".expires")]
    public string expires { get; set; }
}
...