VueJS - 存储在localStorage中的Auth Token无法在iPhone上运行?

时间:2018-02-08 17:59:41

标签: vuejs2

我构建了一个使用令牌进行授权的应用。用户登录并从后端获取令牌。该令牌存储在浏览器中的localStorage中,然后用于API的每次后续调用。如果令牌不存在或令牌错误,则使用401 - Unauthorized。

拒绝呼叫

这在我的桌面浏览器上完美运行,但当我尝试在我的iPhone上使用它时,一堆电话被拒绝为401 - 未经授权 - 并非全部被拒绝。我将手机连接到我的笔记本电脑上以进行Safari远程调试,我可以确认令牌位于本地存储中,这是正确的令牌。

但似乎有一种模式。我可以通过手机更新现有条目,但我无法通过手机创建新条目 - 这些条目将被拒绝为401.

我是否遗漏了Vue如何在移动设备上处理localStorage?有没有理由说它不能像在浏览器上那样在iPhone上运行?

我很难过......

2 个答案:

答案 0 :(得分:0)

不,是简短的回答。首先是让Vue摆脱循环。 Vue不会访问本地存储,你的js会这样做。我能想到的唯一的Iphone问题是主屏幕上安装的应用程序不与safari共享其上下文。我不认为这是你的问题。我真的怀疑这与localStorage有什么关系。

有很多方法可以检查char,char,发送给你的api-safari dev工具的请求,fiddler。抓取请求标头。特别注意大写或空白的任何差异,尤其是Auth标题。问题是在某处盯着你看。

答案 1 :(得分:0)

<强>解

事实证明我的应用程序中的一些URL有斜杠,而有些则没有。在我的手机上,URL有一个尾部斜线会失败,但在我的桌面上运行正常。我查看了所有代码,并在各处添加了斜杠,现在一切正常。

var url = 'projects' <- works on desktop, returns 401 on phone
var url = 'projects/' <- works on desktop AND phone