这主要是一个措辞问题。但是,虽然这是一个非常重要的问题,但可能会导致大型代码库中的错误解释被更大的团队维护。假设我们有一个非常基本的CRUD / RESTful应用程序和一个身份验证系统。在这种情况下,将通过服务器(身份验证)识别尝试完成数据更改请求(POST / PUT)的经过身份验证的用户,然后将检查此标识的用户是否有权创建/更新资源。问题(授权)。
现在让我们说我将在稍后阶段实现Oauth协议,支持某种Web API解决方案。在这种情况下,来自客户端应用程序A的用户必须要求资源提供程序的授权执行某些操作。
截至目前,我们在同一个应用中有两个有效的授权概念。在应用程序级别,它不是一个大问题,因为我们可以将两个概念包含在相关的命名空间中,但在DB中我有两个有效的候选者不能共享名称授权即可。
由于我不是命名空间表名称的忠实粉丝,我想建议可能重命名其中一个(或者可能是其他一些你可能实现过的疯狂解决方案)。
Cheerio
答案 0 :(得分:1)
oauthgrants
或仅使用更具描述性名称的前缀authorizations
怎么样?:
user_authorizations
和app_user_authorizations
。这可能违反了有关命名空间的规则,但会更具描述性。
user_authorizations
或authorizations
只会拥有用户允许在系统中执行的操作。
app_user_authorizations
或oauthgrants
将拥有用户通过OAuth授予第三方应用程序的权限。它将存储:用户ID,OAuth 2.0客户端ID,授予的范围,刷新令牌(如果存在),到期(如果存在)。它也可能具有访问令牌,具体取决于您如何实现它们(或者它们可能位于另一个表中,或者因为它们可以加密验证而存储在其中)