Beispiel #1
0
        public async Task <string> GetTokenAsync(MyTypeWebClient typeClient, IHttpContextAccessor httpContextAccessor)
        {
            var sessionAuthResponse = GetSessionAuthResponse(httpContextAccessor);

            if (sessionAuthResponse != null)
            {
                DateTime currentUtcTime = DateTime.UtcNow;
                if (sessionAuthResponse.expirationDateTime < currentUtcTime) //token expired
                {
                    var refreshtoken = new RequestRefreshToken
                    {
                        token        = sessionAuthResponse.accessToken,
                        refreshToken = sessionAuthResponse.refreshToken
                    };

                    var authToken = await GetRefreshToken(typeClient, httpContextAccessor, refreshtoken);

                    if (authToken != null)
                    {
                        return(authToken.accessToken);
                    }
                }

                return(sessionAuthResponse.accessToken);
            }


            return(null);
        }
Beispiel #2
0
        private async Task <AuthResponse> GetRefreshToken(MyTypeWebClient typeClient, IHttpContextAccessor httpContextAccessor, RequestRefreshToken requestRefreshToken)
        {
            string jsonStringIfyData = JsonConvert.SerializeObject(requestRefreshToken);
            var    contentType       = new MediaTypeWithQualityHeaderValue("application/json");

            typeClient.Client.DefaultRequestHeaders.Accept.Add(contentType);

            var contentData = new StringContent(jsonStringIfyData, System.Text.Encoding.UTF8, "application/json");

            var response = await typeClient.Client.PostAsync("/api/v2.2/Auth/RefreshToken", contentData);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var responsecontent = await response.Content.ReadAsStringAsync();

                var refreshtokenresult = JsonConvert.DeserializeObject <RefreshTokenResponse>(responsecontent);
                if (refreshtokenresult.success)
                {
                    var tokenresponse = new AuthResponse
                    {
                        accessToken        = refreshtokenresult.token,
                        refreshToken       = refreshtokenresult.refreshToken,
                        expirationDateTime = refreshtokenresult.accessTokenExpiration,
                        dateIssued         = refreshtokenresult.issuedDate
                    };
                    var responseAuth = JsonConvert.SerializeObject(tokenresponse);

                    httpContextAccessor.HttpContext.Session.SetString("responseAuth", responseAuth);

                    return(tokenresponse);
                }
            }

            return(null);
        }
 public DownloadController(MyTypeWebClient typeClient, IHttpContextAccessor sessionContext)
 {
     this.typeClient     = typeClient;
     this.sessionContext = sessionContext;
 }
 public EmployeeController(MyTypeWebClient typeClient, IHttpContextAccessor sessionContext)
 {
     TypeClient     = typeClient;
     SessionContext = sessionContext;
 }
 public AccountController(IHttpClientFactory httpClientFactory, MyTypeWebClient typeClient)
 {
     this.httpClientFactory = httpClientFactory;
     this.typeClient        = typeClient;
 }