Generi c Способ реализации токена JWT Refre sh на стороне клиента - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть WebApi, который генерирует токен JWT для предоставления доступа к методу контроллера. Я ищу создание универсального c метода на стороне клиента, который отправляет запрос и проверяет, не токен не подтвержден, чем go для refre sh токена, а затем вызывает метод

Ниже приведен мой код на стороне клиента

    Public Function SendOrderNotification(ByVal orderNumber As String, ByVal sendingStoreID As String, ByVal receivingStoreID As String) As Boolean
        Try
            If String.IsNullOrEmpty(SMSAPIToken)
                SMSAPIToken = GetTokenFromSMSAPI()
            End If
            If String.IsNullOrEmpty(SMSAPIToken)
                Throw New Exception("Unauthorized: Invalid username password. Source : SMS Web API")
            End If
            Dim hwr As HttpWebRequest
            Dim endPoint As String = ConfigurationManager.AppSettings("SMSWebAPIURL")
            endPoint = endPoint + "orders/SendOrderNotification?orderNumber=" + orderNumber + "&senderStoreId=" + sendingStoreID + "&recipientStoreId=" + receivingStoreID
            hwr = WebRequest.Create(endPoint)
            hwr.Headers.Add("Authorization", "Bearer " + SMSAPIToken)
            hwr.Method = "POST"
            hwr.ContentLength = 0
            hwr.ContentType = "application/json"
            Dim wr As WebResponse
            wr = hwr.GetResponse()
            If Not CType(wr, HttpWebResponse).StatusCode = HttpStatusCode.Unauthorized Then

            End If
            If Not CType(wr, HttpWebResponse).StatusCode = HttpStatusCode.OK Then
                Return False
            End If
            Return True
        Catch ex As WebException
            If ex.Response.GetType() Is GetType(System.Net.HttpWebResponse)
                If DirectCast(ex.Response , HttpWebResponse).StatusCode = HttpStatusCode.Unauthorized
'I can call method here to get refresh token,but this is not the professional way
                End If
            End If
        Catch ex As Exception
            ErrorLog.Add(ex)
            Return False
        End Try
    End Function

Возврат API HttpStatusCode.Unautized при истечении срока действия токена. Поэтому мне нужно вызвать refre sh token, это просто, просто вставьте код и снова вызовите метод SendOrderNotification. Но я ищу некий родовой c метод для использования во всех клиентских методах

...