- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 Vuejs使用 Nuxtjs 创建的应用程序.我也在使用 Django作为后端服务器,我制作了一个 API 来与后端服务器 (Django) 和前端应用程序 (Vuejs/Nuxtjs) 进行交互。并且任何与 API 相关的提取都在页面的 AsyncData 函数
中完成,以使用 axios 在服务器端呈现数据。 .此外,我正在使用 json web token 身份验证,API 在成功登录后生成一个存储在 cookie 中的 jwt token 。因此在后端,它将始终检查请求的 token 授权 header 。如果请求来自登录用户(授权 token ),则返回经过身份验证的 json 数据,否则返回未经过身份验证的数据。
问题:
当用户导航到应用程序时,我想检查用户是否已通过身份验证。如果用户已通过身份验证,则呈现经过身份验证的页面。如果不是,则显示未经身份验证的页面。
我的想法:
当通过 AsyncData 函数
从应用程序中完成提取时,我会检查 cookie 是否有任何值。如果存在,则发送带有请求授权 header 的 token 。但是,由于页面将首先在服务器上呈现,而不是在客户端(cookie 实际所在的位置)呈现,因此它永远不会找到授权 token 。
如何检查用户是否已登录,以便我可以分别从 API 获取经过身份验证和未经过身份验证的数据?
更新
当我成功登录时(发布授权电子邮件和密码),我会收到一个带有 token 的 json 响应,我在 cookie 中设置的 token 如下:
this.$cookie.set('my_auth_token', this.token, {expires: 15})
如何检索客户端 cookie 并进入 nuxt 服务器以进行服务器端渲染?
最佳答案
Cookies are exposed in the (Express) Nuxt server through middleware.
具体来说,它们可以从 req.headers.cookie
属性中读取。您可以在 Nuxt documentation 中看到一个示例实现.
关于您的实现:使用 Node 从您的 API 获取特权数据似乎是将 session 处理委托(delegate)给该单一服务(而不是两者)并为您的用户提供 SSR 的理想方式。
如果您选择在 Django 服务上实现 session 处理,那么您需要通过将 cookie 传递到您的 axios
请求 header 来“转发”您的 cookie。
关于authentication - nuxtjs与后端API之间的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47320394/
整个分析的新手,我发现这非常困惑 我想在我的 nuxt ssr webapp 中使用 Google Analytics 4,但我对众多选项感到不知所措 Quick issue on nuxtjs/go
图像文件是否必须保存在nuxtProject的静态文件夹中?相反,它将使用 axios 保存在后端服务器中。抱歉,我无法提供示例代码,因为我对此一无所知。计划是将保存在静态文件夹中并将前端 url 发
我认为这方面有很多问题。但是没有正确答案。如何查看生产模式错误日志的详细信息? 最佳答案 Nuxt 在 nuxt.config.js 文件中提供了一个标志来启用生产调试 { debug: true
我正在使用我在下面添加的部署脚本部署我的 NuxtJS 应用程序。我使用了本教程中的一些说明:https://www.digitalocean.com/community/tutorials/how-
大家好! 我面临着一个我找不到解决方法的大问题。 简而言之 - 我希望能够生成以前未知长度的多级路由来创建过滤器。 更多详情有一个网站site.com 它有部分:site.com/news、site.
我将我应该在我的 Nuxt 应用程序中使用的模板的所有文件(css、js、图像等。)添加到 assets/theme 文件夹中。有 assets 文件夹结构: 在 assets/theme/sass/
好吧,我从 nuxt 开始,我有以下路线: /home /dashboard /login 我想保护 /dashboard,但仅限于使用 Cookie 中的 token 登录的用户。 然后我创建了一个
调用 $auth.loginWith('google') 后,我得到 http://localhost:3000/ru/user-registration#state=D7xooLsNNxNGfbvc
我有一个网站,比如说 example.com它与子域 blog.example.com 共享布局和少量组件所以我想为此创建通用的nuxtJS项目,以便nuxtJS优化路由和所有东西,我不想为此创建2个
基本上我需要将脚本添加到我的 index.html 的头部, 所以我试过的是...... 在我的 nuxt.config.js 中 head: { script: [ {
我在 Nuxt 项目中使用 vuetify 时遇到问题,我按照文档说明您只需将 @nuxtjs/vuetify 依赖项安装到您的项目中,并在 中添加一行nuxt.config.js 文件的 >buil
我正在使用 NuxtJs auth module处理我在州内的授权。对于身份验证,我写了一个有效的 express api。 我的 nuxt.config.js 中有以下配置: axios: {
我最近使用js的moment函数来vue。 但它不起作用。 这是说那个时刻没有定义。 我在这里寻找解决方案,但其中任何一个都不适合我。 如何在 nuxt 中使用时刻? import moment f
我是 Vue 和 NuxtJs 的新手。我正在尝试使用 NuxtJs 构建网络摄像头,但遇到了一些问题 Take Photo
我正在使用 NuxtJS 的 AsyncData 方法从 API 获取视频文件,然后作为文件对象返回到页面。 像这样: async AsyncData({$axios}){ var user_
无法使用 nuxt-community 的 Firebase 模块链接从 Firebase 实时数据库读取/检索数据 here 。已经在 nuxt.config.js 文件中添加了我的 firebas
我的 NuxtJS 应用程序中有一个接受查询参数的路由。我正在尝试实现一种允许用户更改查询参数并重新加载页面的逻辑。 我试过: // this does not work because I'm al
我的 NuxtJS 应用程序中有一个接受查询参数的路由。我正在尝试实现一种允许用户更改查询参数并重新加载页面的逻辑。 我试过: // this does not work because I'm al
在服务器渲染代理工作正常。请求将发送至 custom-server.com/v1/places。但在浏览器中请求将转到 current-domain.com/api/places 为什么它在浏览器中不
当我尝试在 nuxtjs 中获取一些数据时显示此错误 Cannot read property '_normalized' of undefined 这是我在 nuxtjs 中的 axios 请求:
我是一名优秀的程序员,十分优秀!