我有一个JavaScript应用程序发布到内部API,API是OAuth2,我们在请求的标头中包含访问令牌:
Authorization:Bearer 2267a056aab4100228a046267bfdfef6c2d73aaec66403eddf854914fa829310
当我们尝试使用过期令牌发布到api时,我们返回401(我们应该)使用此标头:
WWW-Authenticate:OAuth realm='OAuth API', error='expired_token'
但在iOS上,这会触发原生的“基本身份验证”弹出窗口,询问用户名和密码,这不仅是错误的(我很确定),而且还会让我们的用户感到困惑。
有没有办法让iOS不能弹出这个?
答案 0 :(得分:1)
这似乎与invalid grant
的错误响应相匹配,并允许400错误响应。
http://tools.ietf.org/html/rfc6749#section-5.2
invalid_grant - 提供的授权许可(例如,授权 代码,资源所有者凭据)或刷新令牌 无效,已过期,已撤销,与重定向不匹配 授权请求中使用的URI,或者发给的URI 另一个客户。
410 Gone并没有真正作为回应,因为令牌仍在那里,它只是过期或无效。
答案 1 :(得分:0)
我个人会用
410 Gone
请求的资源在服务器上不再可用,也没有转发 地址是已知的。预计这种情况将被视为永久性的。