我正在使用Vue.js和vue-router制作SPA,现在正在使用JWT处理授权/身份验证。我整理了后端(API端点),这样它将响应登录而发出令牌,并在后续请求中检查必需的标头。我现在想实现客户端(Vue.js)。
据我了解,从根本上讲,我需要对除“ /”和“ / login”之外的所有路由进行身份验证。如果存在身份验证,那么我将在授权标头中提交令牌(成功登录后存储在localStorage中)。如果无法在服务器上成功验证,则由于错误响应,用户将被重定向到“ /登录”。
因此,对于实现该功能我需要做几个问题:
除了登录端点外,如何最好地在每个请求中提交标头?我知道使用AJAX的JQuery,我可以配置一个全局的“ ajaxSetup”,这将导致在每个请求中提交标头,但是如何指定异常?单独将标头添加到每个API端点请求很麻烦。
同样,如何设置身份验证预检查,该验证预检查适用于除提到的2条路由(“ /”和“ / login”)以外的所有路由?
假设我正在使用是否存在明显有效的身份验证(显然是因为它仍必须在API端点上进行验证)来确定是否显示某些菜单项等,所以使此更为精细是可行的并根据令牌有效负载中的“作用域”字段确定的权限级别显示不同的内容?显然,处理JWT令牌的最简单方法是纯粹确定其是否存在,因此在客户端不需要解析内容。但是考虑到JWT确实允许有意义的内容,尝试在客户端和服务器端使用这种含义是一个坏主意吗?显然,如果令牌本身已加密,这将变得不实用,