OAuth最佳实践 - 用户属于多个应用时的数据库设计

时间:2016-12-28 00:09:54

标签: mysql oauth oauth-2.0 scopes

我正在设计一个RESTful API,它将作为多个移动应用的常见后端。到目前为止,它包括:

  • 用户表:ID(主要),姓名,电子邮件,密码
  • 应用表格:ID(主要),名称,说明

只是独立的表......

我想实施 OAuth密码授予方法,以便在每种情况下使用电子邮件/密码表单从移动应用程序请求OAuth访问令牌,以便我可以使用 OAuth范围利用访问级别。

我只是想知道哪种方法是设计数据库架构的最佳方法。

我的尝试,到目前为止:

  1. app_id 字段添加到用户表,并使电子邮件字段唯一,但这会限制它们仅使用他们注册的第一个应用程序所以这不是解决方案。但是,通过这种方法,我可以轻松地实现基于OAuth范围的权限系统:(

  2. app_id 字段添加到用户表,但不将电子邮件字段添加为唯一。然后,我可以使用相同的电子邮件和不同的 app_id 两行。但是在这种情况下基于OAuth范围的权限的实现会不一致,因为当我调用“oauth / token”时,我可能会有两行具有相同的电子邮件/密码。路线...

  3. 由于许多用户可以在许多应用中注册,其他想法是在应用用户之间创建数据透视表( app_user )。该表将具有:

    • app_id user_id 以及角色字段,用于指定每个应用中每个用户的角色。到目前为止,这一点非常好,但问题出现在应用程序中具有高权限的用户将使用他/她的 golden 访问令牌在另一个应用程序中执行禁止的操作... :(
  4. 拜托,有人可以对这个话题有所了解吗?

    非常感谢提前。

0 个答案:

没有答案