我可以将Firebase实时数据库/ Firestore用作OAuth2.0服务器吗?

时间:2017-10-19 02:32:01

标签: firebase oauth-2.0 google-cloud-firestore

我正在使用Firebase开发本机Android应用程序(没有其他自定义服务器,只有Firebase) 它应该使用其他服务。 (如Facebook API,Twitter API等......)

服务提供商通过OAuth 2.0提供REST Api。 我是OAuth 2.0的新手,我没有经验。

昨天我试图实施" Implicit Grant",它运行正常。 我可以获得access_token,我可以使用REST API。

但是有一个参数" expires_in":604800(7天)。 这意味着我的客户应在7天后重新授权。 (没有refresh_token。)

所以我正在考虑改变#34; Implicit Grant"到"授权代码授予"。 但我已经告诉过你,我是OAuth 2.0的新手。 (我没有经验,这是我的第一次。)

如果我选择"授权码授予",我应该存储"代码"交换" access_token"。 那我应该在哪里存放? 我想我可以将它存储在本地设备中,但它并不考虑安全性。 所以我想知道我可以使用" Firebase实时数据库/ Firestore"作为存储"代码"。

的存储

我认为这是合理的。 但我不确定......

1 个答案:

答案 0 :(得分:1)

既然你说你是新手,那么值得阅读更多关于Oauth 2.0的内容,特别是当你想建立Oauth服务器时,一个简单的谷歌搜索返回 https://stormpath.com/blog/what-the-heck-is-oauthhttps://stormpath.com/blog/what-the-heck-is-oauth

Fire Base数据库足以构建一个服务器,你需要端点来处理传入的请求,你可以使用Cloud Functions

因此,如果您想实现**授权授权**或隐式流,则需要在浏览器中实现,

  1. 首先,您可以使用云功能处理来自客户端(在浏览器中)的传入GET请求
  2. 然后返回用户可以登录的登录页面
  3. 然后处理来自页面的身份验证提交请求,对其进行身份验证,如果有效生成代码 access_token (在隐式流程的情况下),则将其存储在firebase数据库中< / LI>
  4. 使用redirect uri
  5. 将生成的代码返回给客户端

    最后,如果授权授权流程,您需要另外一个云功能来处理代码交换以访问令牌