在我的iOS应用程序中,我使用以下提供商进行授权:Apple,谷歌Facebook和。授权流通过以下框架完成:AuthenticationServices
Apple Sign InGoogleSignIn
FBSDKLoginKit
Facebook .
成功完成授权后,我将收到每个提供者的凭据,其中包含以下数据:
- 对于Apple,我得到了
idToken
和nonce
。 - 对于Google,我得到了
idToken
和accessToken
。 对于Facebook,我得到了一个
accessToken
。问题是:如何继续到Supabase的授权流?如何发送此凭据以接收有效的授权会话?
更新:
通过将idToken
和nonce
发送到https://SUPABASE_ID.supabase.co/auth/v1/token?grant_type=id_token
,我成功地完成了Apple Sign In。但目前还不清楚如何处理GoogleFacebook和提供者。
在任何地方都没有记录,我只是阅读goTrue源代码。所以不确定这是否会很快停止工作。但万一对其他人有用的话…
发送一个POST请求到
https://<your id>.supabase.co/auth/v1/token?grant_type=id_token
与body
{"id_token": "<your google id_token>","provider": "google"}
添加一个apikey头与你的Supabase Key,你将得到来自Supabase的验证响应。然后拨打"setSession()
";有了这个访问令牌和刷新令牌,你就可以开始了。