Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web applications 在使用Oauth实现应用程序时,授权概念存在冲突_Web Applications_Oauth_Authorization_Oauth 2.0_Crud - Fatal编程技术网

Web applications 在使用Oauth实现应用程序时,授权概念存在冲突

Web applications 在使用Oauth实现应用程序时,授权概念存在冲突,web-applications,oauth,authorization,oauth-2.0,crud,Web Applications,Oauth,Authorization,Oauth 2.0,Crud,这主要是一个措辞问题。但是,尽管这是一个非常重要的问题,但在更大的团队维护的大型代码库中可能会导致误解。假设我们有一个非常基本的CRUD/RESTful应用程序,它带有一个身份验证系统。在这种情况下,服务器将识别试图完成数据更改请求(POST/PUT)的经过身份验证的用户(身份验证),然后检查该识别的用户是否有权创建/更新相关资源(授权) 现在假设我将实现Oauth协议,以便在稍后阶段支持某种web API解决方案。在这种情况下,客户端应用程序A的用户必须向资源提供商请求授权才能执行某些操作 因

这主要是一个措辞问题。但是,尽管这是一个非常重要的问题,但在更大的团队维护的大型代码库中可能会导致误解。假设我们有一个非常基本的CRUD/RESTful应用程序,它带有一个身份验证系统。在这种情况下,服务器将识别试图完成数据更改请求(POST/PUT)的经过身份验证的用户(身份验证),然后检查该识别的用户是否有权创建/更新相关资源(授权

现在假设我将实现Oauth协议,以便在稍后阶段支持某种web API解决方案。在这种情况下,客户端应用程序A的用户必须向资源提供商请求授权才能执行某些操作

因此,到目前为止,我们在同一个应用程序中有两个有效的授权概念。在应用程序级别,这不是一个大问题,因为我们可以将这两个概念包含在一个相关的名称空间中,但在DB中,我有两个有效的候选者,不能共享名称授权

由于我不太喜欢使用名称空间表名称,我希望您能为其中一个名称的重命名提供一些建议(或者您可能已经实现的其他广泛的解决方案)


Cheerio

如何
oauthgrants
或只是在
授权
前面加上更具描述性的名称
用户授权
应用程序用户授权
。这可能会违反您关于名称空间的规则,但更具描述性

user\u授权
授权
仅具有允许用户在系统内执行的操作


app\u user\u授权
oauthgrants
将拥有用户通过OAuth授予第三方应用程序的权限。它将存储:用户ID、OAuth 2.0客户端ID、授予的作用域、刷新令牌(如果存在)、过期(如果存在)。它还可能具有访问令牌,具体取决于您如何实现它们(或者它们可能位于另一个表中,或者由于可通过加密验证而未存储)

为什么OAuth授权和服务器授权不只是一个DB表?OAuth授权授予外部应用程序的外部用户对主应用程序中资源所有者的资源执行任何操作的授权。服务器授权授予主应用程序的用户对map应用程序中的资源执行任何操作的授权。因此,Oauth授权除了处理所有Oauth协议之外,还与它所指的客户端应用程序耦合。“简单”授权只是对主应用程序上某些操作的过滤(比如检查用户是否有权编辑资源)。将它们放在同一个表中会有点过分,因为“简单”授权不需要Oauth授权所需要的很多东西。我想这正是我在这个问题上所需要的。不用说,正如你所说,前缀正是我想要避免的。因此,我将坚持应用程序的“授权”和oauth工作流的“授权”,它们似乎足够好了。没有什么比问一个以英语为母语的人单词的确切含义更重要的了:)