我有一个快递+ postgres后端,我使用passport-facebook为FB oauth。
如果用户在/
点击我的应用而没有localStorage中的有效令牌,则他们会被带到/login
。
我的/login
页面(您熟悉的#34;继续Facebook"消息)是服务器呈现的(出于各种原因)。单击此按钮后,我会验证用户是否存在,并向他们发送初始JWT的会话cookie,或者创建新用户并向他们发送带有初始JWT的会话cookie。在这两种情况下,成功条件是它们被重定向到/
并为SPA资产提供服务。
SPA的第一件事就是从会话cookie中取出JWT并将其放入localstorage中,然后删除cookie。
这是一种可怕的方法,还是在我的用例中有效?
答案 0 :(得分:0)
您正在使用会话cookie作为在客户端上存储JWT的方法。这意味着您可以通过花费服务器资源来创建一个服务器会话,该会话将在到期之前保持打开状态
会话cookie无法从javascript中读取,所以我猜你向服务器请求获取JWT,对吗?
该过程似乎没有问题,但我认为您可以通过使用带有set-cookie
标头的常规cookie直接在响应中直接发送JWT来优化它。 cookie将存储在客户端中,您可以直接访问它