Yii SOA和RESTful体系结构中的授权(而非身份验证)
我正在开发一个小型web应用程序。它自动化了一个会计过程 我起草了一个业务需求和SOA结构,但由于我的限制,我不能再进一步了,尤其是授权部分 让我困惑的一件事是,我应该使用RESTfulAPI进行授权(而不是身份验证)吗? 或者我应该在后端执行授权(用户->角色->允许的操作),而不公开此授权服务 SOA+RESTful API处理授权的最佳实践是什么 真诚地,Yii SOA和RESTful体系结构中的授权(而非身份验证),yii,soa,restful-architecture,Yii,Soa,Restful Architecture,我正在开发一个小型web应用程序。它自动化了一个会计过程 我起草了一个业务需求和SOA结构,但由于我的限制,我不能再进一步了,尤其是授权部分 让我困惑的一件事是,我应该使用RESTfulAPI进行授权(而不是身份验证)吗? 或者我应该在后端执行授权(用户->角色->允许的操作),而不公开此授权服务 SOA+RESTful API处理授权的最佳实践是什么 真诚地, Nicolas如果我没有误解您的问题,我认为正确的做法是服务器可能会返回访问错误(或无权访问资源的错误)或请求的结果 在JSON中,服
Nicolas如果我没有误解您的问题,我认为正确的做法是服务器可能会返回访问错误(或无权访问资源的错误)或请求的结果 在JSON中,服务器返回如下内容
{
"status": "ko",
"error": {
"number": "xx",
"msg" ; "error you dont have right to access"
}
}
如果可以的话
{
"status": "ok",
"result": {
...
}
}RESTAPI的问题是,例如,您不能使用
会话登录用户。每次用户尝试访问受保护的ressource时,他都需要在请求中发送标识他的令牌(我们使用令牌不在请求中发送密码)
因此,即使用户调用方法/authorize/{…}
,您也需要在调用其他方法时再次检查其凭据,因为没有登录状态
所以对我来说,最好的处理方法是:
用户以其用户名和令牌作为参数发送请求
在服务器端,检查令牌是否有效(与用户名匹配且未过期)
如果令牌有效,那么用户就是他所说的用户,这样您就可以检查其权限(如果他有权访问ressource)
如果他有权限,那么你继续请求
否则您将响应HTTP
错误,如401
(未经授权)
您能详细解释一下我应该使用RESTful API进行授权是什么意思吗?例如:每次在调用其他服务API之前调用/authorize/{…},以查看在用户通过sessionID进行身份验证之后,我是否有权访问资源。这就是授权的方式吗?您需要什么级别的授权?您需要阻止API吗?过滤数据(“行级安全”)?还有别的事吗?我同意你的看法,达克希尔!非常感谢你的帮助!很高兴它有帮助!如果它解决了你的问题,那么你应该勾选答案来标记你的问题已解决!