【发布时间】:2018-11-20 23:00:36
【问题描述】:
我正在实施一项服务,该服务需要 JWT 令牌才能访问。
当 JWT 令牌过期时,下面会显示在页面本身上。
<oauth>
<error_description>
Access token expired: <token_value>
</error_description>
<error>invalid_token</error>
</oauth>
在角度上,我正在路由的是
{ path: '', component: HomeComponent }
例子:
当我启动页面时(本地 - https://localhost:8080/) 我会收到令牌过期错误。我想将 401 捕获为页面加载。
那么如何检查当前页面是否返回 401?例如,假设如果用户刷新页面,我如何获得 401 响应而不是在网页本身中显示它。
【问题讨论】:
-
路由不返回 401,因为它是客户端。 401 是“未经授权的请求”的服务器端响应。因此,您的代码中的某些内容很可能会进入服务器并且无法访问资源。如果你想全局捕获 http 请求并在一个地方处理它们,你可以使用拦截器。阅读文档。
-
4XX 代码通常是客户端 ding 一些服务器不期望的东西。如果您能够验证页面是否确实返回了 401,则可以使用拦截器来检查状态。请参阅以下内容以供参考:stackoverflow.com/questions/47842939/…
-
现在的问题是我不知道上面的请求是在哪里提出的。我路由到该页面,并且令牌附加在 cookie 中。我没有明确获取令牌,并且当令牌过期时页面加载时显示上述错误。