這裏Azure的移動應用清爽令牌的背景:服務器上
- 需要與谷歌/ Facebook的/ MSA認證
- 需要我們自己的要求添加到
MobileServiceAuthenticationToken
使用在客戶端 - 想擁有刷新令牌功能(我知道FB沒有)
我有這個工作LoginAsync
並得到MobileServiceAuthenticationToken
回來。然後我調用一個自定義驗證控制器,該控制器上有一個[Authorize]
屬性。
自定義身份驗證控制器從委託人複製了一些聲明,然後將這些聲明添加到這些聲明中,並創建一個返回給客戶端的新令牌。
使用LoginAsync
所有這些保持令牌流向所有呼叫,這很好。
因此,令牌到期,我在客戶端上呼叫RefreshUserAsync
。此時,使用我們的定製聲明的MobileServiceAuthenticationToken
將由MobileAppService中的默認聲明替代,而無需聲明。我期待這一點。
所以現在我必須再次調用自定義授權控制器才能將我們的權利要求添加回身份令牌。
這個工程,但它感覺笨拙。這是兩次往返。
我在找的是刷新服務器端的身份提供者訪問令牌,並在同一個方法中,用我們的東西更新身份令牌。
我知道/.auth/refresh
來自客戶端的呼叫作爲RefreshUserAsync
的替代方案。有沒有類似的調用,我可以從我的控制器在後端沒有設置整個System.Net.Http.HttpClient
事情?
例如:我在後端使用this.User.GetAppServiceIdentityAsync<GoogleCredentials>(this.Request)
來獲取身份提供者信息而不進行HTTP調用。
這樣的事情?
在此先感謝。
謝謝。並感謝您的快速回復! – nhwilly
因爲我不知道幕後會發生什麼,所以這可能是一個愚蠢的假設......但是,我需要對從後端生成的對'/ .auth/refresh'調用返回的響應進行任何操作嗎?是內部更新,我不能看到?因爲我剛剛將這個.Request的所有頭文件複製到了我的後端HttpClient並進行了調用,它似乎正在工作。似乎太容易:)。 – nhwilly
實際上,我每次都會獲得新的訪問令牌,並且他們最終會以憑據形式結束。完善。謝謝,阿德里安! – nhwilly