簡體   English   中英

Google Oauth2 的 invalid_grant 錯誤問題

[英]Issue with invalid_grant error with Google Oauth2

大家干杯,我們一直在深入閱讀關於從谷歌交換 access_token 的谷歌文檔,以便我們的(delphi)桌面應用程序從服務器端與谷歌進行 SSO。 這是我們首先發送的有效載荷,如下所示:

https://accounts.google.com/o/oauth2/v2/auth?client_id=1000217514248-t1lojs6f8ed7l9ocrpbm98leahtum8n1.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&state=E1DF2FBA-0A66- 4D69-B594-5EB8F7828AF7&scope=openid+profile&include_granted_scopes=true&code_challenge=C832DA50-E55A-499D-89B8-493BB4123C94&login_hint=test@Speelkriebel.be

通常在此之后它會重定向我登錄到我們的測試用戶,然后根據文檔我們向端點令牌發送 POST 請求以獲取 access_token 和 refresh_token ...:'https://oauth2.googleapis .com/token 使用以下參數,生成“代碼”,我們也將其發送如下:

 client_id=1000217514248-t1lojs6f8ed7l9ocrpbm98leahtum8n1.apps.googleusercontent.com grant_type=authorization_code client_secret=****** code= 4/1AY0e-g4GlavO38PI5Oo3vq04Pc4lMWN77et-02UiVWOsT-IyRQnU1lq19qo redirect_uri = urn:ietf:wg:oauth:2.0:oob

回應總是

 { "error_description": "Missing code verifier.", "error": "invalid_grant" }

我們也嘗試發送客戶端秘密 ID,這與我們的 code_challenge 有關系嗎? 端點 url 和初始 url 好嗎? 我們缺少什么? 我們使用 CEF4Delphi 作為“類似瀏覽器的體驗,以便用戶輸入他們的谷歌憑據。我們一直在閱讀: https://developers.google.com/identity/protocols/oauth2/web-server#offline我們是還嘗試了操場: https://developers.google.com/oauthplayground/我們發送初始 url 的 chrome 生成了一個“代碼”,在操場上我們插入了代碼,但仍然得到相同的缺少代碼的錯誤驗證者。

多謝你們

你接縫有 URL 編碼了很多值嘗試不這樣做。 在開始添加其他所有內容之前,還可以嘗試使用基本調用。 它應該可以幫助您確定您發送的那些額外參數中的哪一個導致了您的問題。

https://accounts.google.com/o/oauth2/auth?client_id={clientid}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=profile&response_type=code

還要確保客戶端 ID 來自已安裝/其他類型的客戶端

這也可能有助於Google 3 Legged OAuth2 Flow

對於已安裝的應用程序,代碼質詢和驗證程序是用於增強 OAuth 流通過 PKCE [1] 的安全性的參數。

這里有關於生成代碼質詢和驗證器的附加文檔 [2]。

[1] https://tools.ietf.org/html/rfc7636

[2] https://developers.google.com/identity/protocols/oauth2/native-app#step1-code-verifier

暫無
暫無

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

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