2017-10-19 114 views
0

我正在开发一个使用Firebase的原生Android应用程序(没有其他自定义服务器,只有Firebase) 它应该使用其他服务。 (如Facebook API,Twitter API等)我可以使用Firebase实时数据库/ Firestore作为OAuth2.0服务器吗?

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

昨天我试图实施“隐式授予”,它工作正常。 我可以获取access_token,并且可以使用REST API使用它。

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

因此,我正在考虑将工具从“隐式授予”更改为“授权代码授予”。但我已经告诉过你,我是OAuth 2.0的新手。 (我没有经验,这是我第一次。)

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

我认为这是合理的。 但我不知道......

回答

0

既然你说你是一个新手,这尤其是当你想建立的Oauth服务器是值得一读的了解OAuth 2.0,一个简单的谷歌搜索返回 https://stormpath.com/blog/what-the-heck-is-oauthhttps://stormpath.com/blog/what-the-heck-is-oauth

消防基地数据库单独足以建一个服务器,则需要终端来处理传入的请求,您可以使用Cloud Functions

所以,如果你想实现**授权批准**或暗示的流量,它需要在浏览器中发生的,

  1. 首先,你可以使用云功能,以处理来自客户端进入的GET请求(浏览器)
  2. 然后返回一个登录页面,用户可以登录,
  3. 然后处理AUTH从页面提交请求,验证它,如果有效生成代码的access_token(在隐式流动的情况下),存储在数据库火力
  4. 返回所生成的代码重新使用客户端重定向URI

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

+0

谢谢,但我不想创建OAuth服务器。我只想使用已经存在的一个(如facebook/twitter)。任何你认为可能的方式。 – yoonhok

+0

我无法理解...我需要使用“云功能”吗?我认为原生移动可以做同样的事情。我不知道为什么要使用“云端函数”。 – yoonhok

+0

很抱歉,我读了你的问题,就像你需要实现Oauth服务器 –

相关问题