Как обновить sh токен доступа в C# - PullRequest
0 голосов
/ 21 апреля 2020

Я не могу найти учебник или пример кода, в котором показано, как / когда нужно обновить sh токен доступа. Как реализовать обновление нового маркера доступа, когда он истекает?

Это то, что у меня есть до сих пор:

Это класс, где можно получить новый токен доступа и обновить sh токен.

namespace DemoApp
{
    public class Tokens
    {
        public string access_token { get; set; }
        public string token_type { get; set; }
        public int expires_in { get; set; }
        public string refresh_token { get; set; }
    }

    public class AccessToken 
    {
        public void GetNewAccessToken()
        {
            Tokens localTokens = new Tokens();

            var client = new RestClient("www.example.com/api/token");
            var request = new RestRequest(Method.POST);
            request.AddHeader("content-type", "application/x-www-form-urlencoded");
            request.AddParameter("application/x-www-form-urlencoded", "grant_type=refresh_token&refresh_token=" + localTokens.refresh_token, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            var responseContent = response.Content;

            var newTokensList = new JavaScriptSerializer().Deserialize<Tokens>(responseContent);

            localTokens.access_token = newTokensList .access_token;
            localTokens.refresh_token = newTokensList .refresh_token;
        }
    }
}

Это класс, где он вызывает API, с новым токеном доступа, чтобы получить новые данные.

namespace DemoApp
{
    public class API
    {
        public Data()
        {
            public void CallAPI()
            {
                Tokens tokens = new Tokens();
                var client = new RestClient("www.example.com/api");
                var request = new RestRequest(Method.GET);
                request.AddHeader("authorization", "Bearer " + tokens.access_token);
                request.AddHeader("accept", "application/json; charset=utf-8");
                IRestResponse response = client.Execute(request);

                var data = response.Content;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...