【问题标题】:Android native app with Firebase Auth and MySQL backend带有 Firebase Auth 和 MySQL 后端的 Android 原生应用
【发布时间】:2017-12-29 15:48:01
【问题描述】:

我正在创建一个本机 Android 应用程序,该应用程序当前使用 Firebase Auth 来处理用户身份验证。我在 PHP 站点后面有一个 MySQL 数据库,我正在构建一个 RESTful API 来访问这些服务。我希望获得授权的用户能够访问有限的功能和数据。

在这种情况下,处理后端服务器权限的方法是什么?我是 OAuth 等 Auth 技术的新手,但我觉得这可能是该解决方案的一部分,所以请随时与我交谈,就像我是个白痴一样。 :)

[编辑] 我的后端拥有与 Facebook 类似的权限;例如内容以私人、朋友或公开的形式可见。

问候

【问题讨论】:

    标签: android mysql firebase oauth-2.0 firebase-authentication


    【解决方案1】:

    这取决于您的安全设计。

    最简单的方法是使用基于角色的安全性 - 仅将 OAuth2/OpenID Connect 用于身份验证(请求 ID 令牌,而不是访问令牌)。然后,您必须获取经过身份验证的用户的角色列表。这些角色可以是 ID 令牌的一部分,或者 API 服务器可以从其他来源(例如其数据库)获取它们。如果角色检索是一项昂贵的操作,您可以考虑发布您自己的令牌 (JWT),其中包含您需要的所有信息。

    如果您只想将用户的部分权限委派给移动应用,您可以将 API 范围(权限)注册到 OAuth2 服务器,然后应用可以向用户请求其中的一些权限。例如,如果您的应用程序想要代表其用户访问 Google 服务,该应用程序会请求具有特定范围的访问令牌(例如读取 GMail 收件箱)。但这可能不是你想要的。

    编辑: 如果您处理的对象具有自己定义的访问权限(私有、公共、可见的朋友),那么只需从 OAuth2 服务器获取用户身份(ID 令牌)并在有人通过您的 API 请求此类对象时检查权限。 OAuth2 本身无法帮助您。

    对于您的 Android 应用,请使用 OAuth2 for native apps RFC 中所述的授权代码授予流程。

    【讨论】:

    • 我的后台和Facebook有类似的权限;例如内容以私人、朋友或公开的形式可见。
    猜你喜欢
    • 2016-12-15
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多