簡體   English   中英

Snapchat OAuth:無效的code_verifier

[英]Snapchat OAuth: invalid code_verifier

我正在使用 PKCE 運行普通的 OAuth 流程,以從 Snapchat 獲取用戶訪問令牌。 最初的請求很簡單。 我使用以下方法在我的 Python 后端生成一個 PKCE 對:

pkce_code_verifier = secrets.token_urlsafe(96)
hashed = hashlib.sha256(pkce_code_verifier.encode("ascii")).digest()
pkce_code_challenge = base64.urlsafe_b64encode(hashed).decode("ascii")[:-1]
return pkce_code_challenge, pkce_code_verifier

我將代碼質詢傳遞到成功返回代碼的第一個請求中。

但是,無論我如何構造將代碼交換為訪問令牌的后續請求,我都會收到:

{
  "error": "invalid_grant",
  "error_description": "Invalid code_verifier.",
  "state": ""
}

這是一個示例 CURL:

curl -X POST https://accounts.snapchat.com/accounts/oauth2/token
--header 'Authorization: Basic [redacted]'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=authorization_code'
--data-urlencode 'code=XCd9mUHo9s4osXBvEnmERloR2DjUxR_AA4el_azXnhg'
--data-urlencode 'code_verifier=kJ31ekNSvahWwczcea-q9rFI8Grl9-jDOTuXPTDIxfhuf1IEWdRbJAKf4vTeA8vxhzUHBBM9QDcn3NmEqqAlrpz8_PNP573sljIKQIur-lV-BjuWtSHMZb7zby5WpRw6'
--data-urlencode 'redirect_uri=[redacted]'

有沒有人讓這個工作? 我已經使用一些在線 PKCE 工具驗證了我的代碼質詢和代碼驗證程序; 他們似乎有效。

事實證明,這是 expo-auth-session 中的一個問題。 我在這里記錄了它: https://forums.expo.dev/t/expo-authsession-pkce-always-leads-to-invalid-code-verifier/63750

暫無
暫無

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

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