RESTful API是否会返回不同的状态码或令牌过期和未经授权的错误消息?
我正在开发一个使用authentication令牌的RESTful API。
工作stream程简单; 客户端执行一个/ getAuth请求,发送用户凭证,为用户返回一个令牌。
然后,用户将以下所有请求中的令牌作为标头传递给API。 经过一段时间/呼叫次数(由服务器决定)令牌到期。 当头中有一个过期令牌的请求到达服务器时,响应状态是401 Unauthorized 。 在这种情况下,用户必须使用/ getAuth 请求另一个标记 ,依此类推。
我面对的问题是,当一个请求未经授权的任何其他原因(访问未经授权的资源),该API还返回401未经授权。 此时,客户端无法知道它是否尝试访问他无法访问的内容,或者其用户令牌是否已过期。 没有任何方式知道,它会再次要求一个令牌,并重播相同的请求,从而再次得到一个401等等。
所以我的问题是: 对于过期的令牌,如果RESTful API返回一个不同的状态码或错误消息,而不是返回未经授权的请求的状态和错误,或者客户端是否应该find某种方法来pipe理它 ?
我发现客户端的解决scheme将是保存每个请求的URL,而不是重试一个请求失败与一个新的(刚收到)令牌。 但我觉得它很肮脏。
令牌过期后,客户端不再被授权,因此返回401 Unauthorized
头是有意义的。
我面对的问题是,当一个请求未经授权的任何其他原因(访问未经授权的资源),该API还返回401未经授权。 此时,客户端无法知道它是否尝试访问他无法访问的内容,或者其用户令牌是否已过期。
如果( 授权 )客户端尝试访问资源并且没有适当的权限,则应该返回403 Forbidden
。
- Sails.js Waterlock / auth / register导致错误500
- 在unit testing中嘲笑Passport.js(本地策略)
- 如何使用Firebase实施Steamvalidation?
- Node.js网站的用户身份validation
- NodeJS Passport:通过两种策略multilogin – 序列化问题
- Mongo DB已更新,但是呈现了旧信息
- Nodemailer不断拒绝无效login身份validation(不使用Gmail)
- 为什么我会连接错误尝试连接到mongo
- 使用passport.js在node.js中进行身份validation后,redirect到上一页