簡體   English   中英

Auth0Client.LoginAsync()v4.x在C#WPF應用程序中不返回刷新令牌

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM