我正在开发一个小型网络应用程序。它使一个会计流程自动化。
我起草了一个业务需求和一个SOA结构,但是由于我的限制,我不能更进一步,尤其是授权部分。
让我感到困惑的一件事是我应该使用 RESTful API 进行授权(而不是身份验证)吗?还是我应该在后端进行授权(用户-> 角色-> 允许的操作),而不暴露此授权服务?
SOA + RESTful API 处理授权的最佳实践是什么?
真诚的,尼古拉斯
我正在开发一个小型网络应用程序。它使一个会计流程自动化。
我起草了一个业务需求和一个SOA结构,但是由于我的限制,我不能更进一步,尤其是授权部分。
让我感到困惑的一件事是我应该使用 RESTful API 进行授权(而不是身份验证)吗?还是我应该在后端进行授权(用户-> 角色-> 允许的操作),而不暴露此授权服务?
SOA + RESTful API 处理授权的最佳实践是什么?
真诚的,尼古拉斯
REST API 的问题是您无法使用session
例如登录用户。每次用户尝试访问受保护的资源时,他都需要在请求中发送一个标识他的令牌(我们使用令牌不在请求中发送密码)。
因此,即使用户调用该方法/authorize/{...}
,您也需要在调用其他方法时再次检查其凭据,因为没有登录状态。
所以对我来说,最好的方法是:
HTTP
之类的错误401
如果我没有误解你的问题,我认为正确的事情是服务器的每个服务请求都可能返回访问错误(或无权访问资源的错误)或请求的结果。
在 JSON 中,服务器返回类似这样的内容
{
"status": "ko",
"error": {
"number": "xx",
"msg" ; "error you dont have right to access"
}
}
如果没问题
{
"status": "ok",
"result": {
...
}
}