Ben*_*Max 8 authentication vue.js nuxt.js
我有一个使用Nuxtjs创建的Vuejs应用程序.我也使用Django作为后端服务器,我创建了一个API来与后端服务器(Django)和前端应用程序(Vuejs/Nuxtjs)进行交互.并且任何与API相关的提取都在页面中完成,以使用axios在服务器端呈现数据.此外,我正在使用json Web令牌身份验证,并且API在成功登录后生成一个jwt令牌,该令牌存储在cookie中.因此,在后端,它将始终检查令牌的请求的授权标头.如果请求来自登录用户(授权令牌),则返回经过身份验证的json数据,否则返回未经过身份验证的数据.AsyncData function
问题:
当用户导航到应用程序时,我想检查用户是否经过身份验证.如果用户已通过身份验证,请呈现经过身份验证的页面.如果没有则显示未经过身份验证的页面.
我的想法:
当从app上完成提取时AsyncData function,我会检查cookie是否有任何值.如果有,则发送带有请求的授权标头的令牌.但是,由于页面将首先在服务器上呈现,而不是在客户端(cookie实际上在哪里)呈现,因此它永远不会找到授权令牌.
如何检查用户是否已登录,以便我可以分别从API获取经过身份验证和未经过身份验证的数据?
更新
当我登录成功(后授权的电子邮件和密码),我得到的令牌,我在这样的cookie中设置一个JSON响应回:
this.$cookie.set('my_auth_token', this.token, {expires: 15})
Run Code Online (Sandbox Code Playgroud)
如何检索客户端cookie并进入服务器端渲染的nuxt服务器?
Cookie 通过中间件暴露在(Express)Nuxt 服务器中。
具体来说,它们可以从属性中读取req.headers.cookie。您可以在Nuxt 文档中查看此示例的实现。
关于您的实现:使用 Node 从您的 API 获取特权数据似乎是将会话处理委托给单个服务(而不是两者)并为您的用户提供 SSR 的理想方式。
如果您选择在 Django 服务上实现会话处理,那么您需要通过将 cookie 传递到axios请求标头来“转发”cookie。
| 归档时间: |
|
| 查看次数: |
2663 次 |
| 最近记录: |