我正在嘗試實現OAuth2Authorization Server
,並且我正在通過一個MVC 4 webclient項目中的DotNetOpenAuth.AspNet.Clients.OAuth2Client
連接到它。DotNetOpenAuth並使用MVC 4刷新令牌4
在我的SPA webclient中,我能夠獲得AccessToken
覆蓋QueryAccessToken
的OAuth2Client
。
與我的AccessToken
我能夠調用一個REST API服務,並獲得成功的結果作爲用戶額外的數據。
....
HttpWebRequest apiRequest =
(HttpWebRequest)WebRequest.Create(".....://localhost:4314/api/TodoList");
DotNetOpenAuth.OAuth2.ClientBase.AuthorizeRequest(apiRequest, AccessToken);
....
但是,一段時間後,我AccessToken
去到期,我收到一個錯誤,所以我需要刷新我的AccessToken
明年REST服務電話。
如何在OAuth2Client
的方法內更新我的AccessToken
? 是否可以使用ClientBase.RefreshAuthorization(....)
?
由於 甜瓜
感謝您的回答,但是通過這種方式,我無法使用相同的accesstoken進行身份驗證和呼叫安撫服務。我嘗試使用: ... var entity = CreateQueryString(new Dictionary {「Client_id」,_appId},{「Client_secret」,_appSecret},{「Refresh_token」,Authorization。 RefreshToken},{ 「Grant_type」, 「refresh_token」},}); ... 在平靜呼叫失敗後獲得新的accesstoken。 你認爲可以工作嗎? 謝謝 Carmelo –
Carmelo
啊,所以你*也*認證用戶。我明白你希望如何一步完成。您的查詢字符串有不正確的大寫。如果你有所有這些數據來填充它,我建議你調用[ClientBase.RefreshAuthorization](https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/v4.2/src/DotNetOpenAuth.OAuth2.Client/OAuth2/ClientBase .cs#L187),並將這些數據填充到您自己的IAuthorizationState實例中,並讓DotNetOpenAuth處理令牌刷新的機制。 –
感謝您的建議。我會嘗試。卡梅羅 – Carmelo