带有颤动的手动Facebook登录过程
manual facebook login process with flutter
我正在尝试使用 Django Rest Framework 作为后端,使用 flutter 实现 facebook 登录,并具有 rest-social-auth
对社交登录的依赖性。此依赖项不采用 facebook sdk 默认提供的 access_token,但它采用代码,如 https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/#login 中所述。我现在遇到的问题是,我必须自己向用户显示 facebook 登录弹出窗口并等待后端的响应。
使用的 url 类似于:
https://www.facebook.com/v3.3/dialog/oauth
?client_id=1234567890
&redirect_uri=https://example.com:8000/redirect/uri/
目前,我正在尝试这样做:
- 用户点击 'login with facebook' 按钮(这只是一个使用
onPress
方法的普通按钮)
- 应用显示带有 facebook 身份验证的弹出窗口(不知道如何实现)
- 如果用户接受,那么 facebook 将return一个验证码到后端
- 后端交换该代码(通过 rest-social-auth)以获得访问令牌,获取用户数据并对她进行身份验证。
- 后端使用 jwt 令牌将消息发送回移动客户端。
所以..这里有一些问题:
redirect_uri 应该是后端端点还是应该将其发送回移动设备并且移动设备向后端发送请求以将该代码交换为 JWT?
如果 redirect_uri 应该是后端的,那么它如何跟踪如何 return 对客户端的响应?
如果 redirect_uri 是移动的,它如何处理响应?或者我理解的一切都是错误的,移动设备不使用 url 方法 redirect_uri?
如果我的方法是正确的,那么我如何从 flutter 中调用 facebook 身份验证弹出窗口并捕获后端发送的响应?
好吧,要实现您的目标,您需要实际实施以下管道:
应用程序获取 auth_token -> 将其发送到后端 -> 后端施展魔法 -> returns JWT 令牌。
- 在设备上使用
flutter_facebook_login
从 Facebook 获取 access_token
。
- 编写自定义管道以处理令牌、从 Facebook 获取数据并在后端创建新用户或获取 JWT 令牌(如 article 建议)。
或
- 添加
django-rest-framework-social-oauth2
作为依赖项,然后您就可以使用 access_token
来获取您的 JWT 令牌。您可以参考 medium article 以获取指导。
我正在尝试使用 Django Rest Framework 作为后端,使用 flutter 实现 facebook 登录,并具有 rest-social-auth
对社交登录的依赖性。此依赖项不采用 facebook sdk 默认提供的 access_token,但它采用代码,如 https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/#login 中所述。我现在遇到的问题是,我必须自己向用户显示 facebook 登录弹出窗口并等待后端的响应。
使用的 url 类似于:
https://www.facebook.com/v3.3/dialog/oauth
?client_id=1234567890
&redirect_uri=https://example.com:8000/redirect/uri/
目前,我正在尝试这样做:
- 用户点击 'login with facebook' 按钮(这只是一个使用
onPress
方法的普通按钮) - 应用显示带有 facebook 身份验证的弹出窗口(不知道如何实现)
- 如果用户接受,那么 facebook 将return一个验证码到后端
- 后端交换该代码(通过 rest-social-auth)以获得访问令牌,获取用户数据并对她进行身份验证。
- 后端使用 jwt 令牌将消息发送回移动客户端。
所以..这里有一些问题:
redirect_uri 应该是后端端点还是应该将其发送回移动设备并且移动设备向后端发送请求以将该代码交换为 JWT?
如果 redirect_uri 应该是后端的,那么它如何跟踪如何 return 对客户端的响应?
如果 redirect_uri 是移动的,它如何处理响应?或者我理解的一切都是错误的,移动设备不使用 url 方法 redirect_uri?
如果我的方法是正确的,那么我如何从 flutter 中调用 facebook 身份验证弹出窗口并捕获后端发送的响应?
好吧,要实现您的目标,您需要实际实施以下管道:
应用程序获取 auth_token -> 将其发送到后端 -> 后端施展魔法 -> returns JWT 令牌。
- 在设备上使用
flutter_facebook_login
从 Facebook 获取access_token
。 - 编写自定义管道以处理令牌、从 Facebook 获取数据并在后端创建新用户或获取 JWT 令牌(如 article 建议)。
或
- 添加
django-rest-framework-social-oauth2
作为依赖项,然后您就可以使用access_token
来获取您的 JWT 令牌。您可以参考 medium article 以获取指导。