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