首先,我是OAuth和Firebase的新手。我搜索了一下,以寻找Firebase未正式支持的社交媒体的OAuth登录,例如。 LinkedIn和微信。但我能找到的只是Custom Authentication我并不完全明白。 :(
提到
如果您已经在服务器上管理用户帐户,有更高级的身份验证需求,或者用于验证服务器端工作程序,则此身份验证方法非常有用。
这是否意味着我必须拥有自己的服务器进行身份验证?
如果答案是肯定的,那么工作流如何涉及移动应用,我自己的服务器,Firebase和OAuth授权服务器(例如来自LinkedIn)的身份验证?
答案 0 :(得分:4)
是的,您需要一台服务器进行身份验证。您需要至少进行两次不同的API调用:
require "firebase_token_generator"
payload = {:uid => "1", :auth_data => "foo", :other_auth_data => "bar"}
generator = Firebase::FirebaseTokenGenerator.new("<YOUR_FIREBASE_SECRET>")
token = generator.create_token(payload)
然后,将此token
推送给您的用户。对于移动应用程序实现此功能,只需在客户端点击回调URL后将此令牌包含在JSON响应中。您可能需要使用WebView
向您的提供商验证用户身份,然后通过覆盖shouldInterceptRequest
中的方法WebViewClient
来拦截响应。阅读WebViewClient文档了解更多信息
您将需要您自己的服务器来处理涉及Firebase密钥的操作。 不存储此客户端。实际上,请注意Firebase自定义身份验证页面上的内容:
应始终在受信任的服务器上生成Firebase JWT,以便生成它们所需的Firebase密钥可以保密。
有关OAuth的详细信息,请参阅OAuth 2 Simplified或SO问题On a high level, how does OAuth 2 work?