簡體   English   中英

Azure ADB2C Google 注冊 - “AADB2C90090:提供的 JWE 不是有效的 5 段令牌。”

[英]Azure ADB2C Google Sign up - 'AADB2C90090: The provided JWE is not a valid 5 segment token.'

我正在嘗試將 Google 用作 ADB2C SignInSignUp 用戶流中的身份提供者,通過 WebView 在 React Native 應用程序中使用。

當我對此進行測試時,我遇到了一個我似乎無法找到原因的錯誤。 在與 google 注冊后,我收到以下響應對象:

{“canGoBack”:true,“canGoForward”:false,“loading”:false,“target”:99,“title”:“正在加載...”,“url”:“https://TENANT.b2clogin.com /TENANT.onmicrosoft.com/oauth2/authresp?state=StateProperties%3DeyJTSUQiOiJ4LW1zLWNwaW0tcmM6NjIxMDMyYTYtZTVlZC00OTJkLTg1NmMtMTAzYzg3Mzc0YmE3IiwiVElEIjoiZDM5ZTgwY2MtNzJlNy00ZGE5LWJjODYtMGRjZGNlN2Q1MDZlIiwiVE9JRCI6IjRkOTkyMzhiLTBhOGEtNGU0Ny1hYTRkLTk5NTZiYTY3NmE5YyJ9&code=4%2F0AX4XfWhrpKK2DDX58pFTHkb_U2e8SvGnLrPvhI4grUn5ojA5R-q7q4KjcdS1tO4DYemuWQ&scope=email+profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid+https%3A %2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&authuser=0&prompt=none#"}

通常,我會在此響應中收到完全格式化的令牌,然后將其用於服務器端驗證。 這適用於在 Apple 注冊時以及作為 B2C 用戶在用戶流上按“立即注冊”時。

在此返回的令牌格式不正確,並且不遵循響應 url 中的“code=”,因為我通常在登錄或通過其他方法登錄時得到,因此拋出錯誤:'AADB2C90090:提供的 JWE 是不是有效的 5 段令牌。 在嘗試解析 StateProperties 之后的內容時。

有人知道為什么 Google 不會像 Apple/Microsoft 在注冊時那樣返回有效令牌嗎?

任何幫助將不勝感激

請檢查一些解決方法:

  1. 嘗試在范圍中包含客戶端 ID 以及其他范圍 2.嘗試在身份驗證請求中提及Response_mode=form_post
  2. 在某些情況下,它可以與其他版本一起使用,因此請嘗試使用 Msal 版本 4.32。 問題·GitHub根據用谷歌賬號登錄-Azure AD B2C | Microsoft Docs確保創建在谷歌控制台中注冊的應用程序

請注意同一文檔和此博客

在此處輸入圖像描述

參考:

  1. jwt - Azure AD B2C - 令牌驗證不起作用 - Thinbug
  2. Azure Active Directory B2C - 授權代碼編碼問題 (microsoft.com)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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