[英]Auth0Client.LoginAsync() v4.x doesn't return refresh token in a C# WPF app
這是我的代碼:
var auth0 = new Auth0Client(
Properties.Settings.Default.auth0Domain,
Properties.Settings.Default.auth0ClientID);
var handle = new WindowInteropHelper(this).Handle;
var windowWrapper = new WindowWrapper(handle);
var user = await auth0.LoginAsync(
owner: windowWrapper,
scope: "openid profile",
withRefreshToken: true);
返回值包含一個空的刷新令牌。 我還嘗試將設備參數設置為任意值,但這沒有幫助。 我最近從Auth0 v3.x切換到v4.x。 Auth0 v3.x返回了刷新令牌。 在v4.x中有此突破嗎? 如果不是,我需要怎么做才能獲得刷新令牌?
您使用哪種身份提供者? -我用Microsoft Live和一個Google帳戶嘗試了這一點,並且效果很好。
登錄/驗證時,您是否在“用戶”結果中填寫了其他任何字段(沒有提供任何詳細信息/令牌)。
您可以這樣嘗試嗎,即在范圍內不使用“配置文件”。
var user = await auth0.LoginAsync(
owner: windowWrapper,
scope: "openid offline_access",
withRefreshToken: true,
device: "my-device");
要么
var user = await auth0.LoginAsync(
owner: windowWrapper,
scope: "openid",
withRefreshToken: true,
device: "my-device");
如果您具有withRefreshToken=true
,則在內部將"offline_access"
附加到作用域名稱上,這就是上述兩種方法都可以withRefreshToken=true
的原因。
您還需要為每個設備分別提供一個“ id”,以便可以為每個設備分配自己的刷新令牌。
當刷新令牌已經發出,它將在顯示Dashboard
- >在Users
- >選擇用於登錄的用戶認證身份- >然后在User Details
- >選擇Devices
標簽...這會顯示有多少Number of Refresh Tokens
已發行到您的設備。
如文檔中所述,您不應該繼續請求refresh_token。...僅在它們過期后才這樣做(請參閱我對請求的需求超出了我的要求)-也許您達到了請求刷新令牌的限制。 。它只是返回一個“空”令牌代替...但是仍然讓您的身份驗證成功而沒有錯誤....可能嗎?
這是有關刷新令牌的文檔(您可能已經知道了這一點,因為您必須在v3中使用過它)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.