Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

用 NextAuth 實作第三方登入 #162

Open
utterances-bot opened this issue Nov 22, 2022 · 4 comments
Open

用 NextAuth 實作第三方登入 #162

utterances-bot opened this issue Nov 22, 2022 · 4 comments

Comments

@utterances-bot
Copy link

用 NextAuth 實作第三方登入

Hi,大家好! 前陣子在專案上使用了 NextAuth 實作第三方登入,發現 NextAuth 整合了相當多的第三方登入!這篇文章除了會帶著大家認識如何實作,也會介紹在 Line, Facebook, Google 的環境設定。 # 什麼是 NextAuth? 以下為...

https://blog.errorbaker.tw/posts/ruofan/next-auth/

Copy link

suanriz commented Nov 22, 2022

您好,請問您使否有實做過蘋果?
我使用next-auth成功登入並獲取idToken
但丟給後後端驗證卻出現 invalid at_hash
有可能是蘋果的app還未上架導致的嗎?

@ruofanwei
Copy link
Contributor

ruofanwei commented Nov 27, 2022

@suanriz

截圖 2022-11-27 下午7 10 19

ref: Authenticating users with Sign in with Apple

有程式碼範例或是 demo 可能會比較好理解協助釐清問題,這邊提供可能相似的 issue 給你參考
feat(providers): return user object in Profile of Apple provider #4579

Copy link
Contributor

@suanriz 你好,我是共筆部落格的其他寫手

從你提供的錯誤訊息 invalid at_hash 來看,應該是後端在驗證 jwt 的 at_hash 發生的問題。

根據這篇wiki 的說明,at_hash 是用來確認 access_token 和 id_token 是否一致的雜湊值,它所採用的雜湊演算法是由 jwt 的 alg 來指定的。假如是 RS256 或 HS256 的話,那就表示它是用 sha-256 算雜湊值。

發生 invalid at_hash 有幾種可能

  1. apple 給你的 at_hash 本身就是錯的,但這點可能性很低,暫時排除
  2. 可能你沒有把 access_token 帶給後端,以致後端無法驗證
  3. 可能後端的 jwt 驗證設定有問題,例如用 sha512 來驗證雜湊值之類的

如果還有其他需要補充說明的也歡迎你可以再補充,因為你提供的資訊有限,能做的判斷大概是這些。

Copy link

suanriz commented Nov 27, 2022

@outshaker @ruofanwei
非常感謝兩位的幫助,後來經過排查原因出在
後端接受的KEY值不同,這隻api原本是出給APP用的
當時KEY值是c_hash,而網頁則是使用 at_hash
後端修正後,現在已經能成功驗證身份了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants