【问题标题】:Can I use Firebase Realtime database/Firestore as a OAuth2.0 Server?我可以将 Firebase 实时数据库/Firestore 用作 OAuth2.0 服务器吗?
【发布时间】:2017-10-19 21:16:32
【问题描述】:

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

服务提供商通过 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 Realtime database/Firestore”作为存储来存储“代码”。

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

【问题讨论】:

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


    【解决方案1】:

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

    Fire base 数据库足以构建服务器,您需要端点来处理传入请求,因为您可以使用Cloud Functions

    所以如果你想实现 **Authorisation Grant ** 或 Implicit Flow,它需要发生在浏览器中,

    1. 首先,您可以使用云函数来处理来自客户端(在浏览器中)的传入 GET 请求
    2. 然后返回一个用户可以登录的登录页面,
    3. 然后处理来自页面的 auth submit 请求,对其进行身份验证,如果有效生成 codeaccess_token(在隐式流的情况下),将其存储在 firebase 数据库中
    4. 使用重定向 uri 将生成的代码返回给客户端

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

    【讨论】:

    • 谢谢,但我不想创建 OAuth 服务器。我只想使用已经存在的一个(比如 facebook/twitter)。任何方式你的意思是可能的。
    • 我无法理解...我需要使用“云功能”吗?我认为原生移动设备可以做同样的事情。我不知道为什么要使用“云功能”。
    • 对不起,我读到你的问题就像你需要实现 Oauth 服务器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2019-10-22
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    相关资源
    最近更新 更多