首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuxt js <nuxt-link />身份验证

Nuxt js <nuxt-link />身份验证
EN

Stack Overflow用户
提问于 2018-09-30 02:15:50
回答 6查看 2.1K关注 0票数 1

我在nuxt中有一个只有登录用户才能访问的路由: /dashboard/secret。

/dashboard页面中,我有一个类似这样的链接:

代码语言:javascript
复制
<nuxt-link to="/dashboard/secret">Link to "secret" page</nuxt-link>

单击时,nuxt将从

代码语言:javascript
复制
myapp.com/_nuxt/pages_dashboard_secret.js

如何为nuxt路由添加身份验证,以阻止用户手动转到url并读取内容?

是的,实际的秘密数据将从外部api获取,它将验证用户令牌,但人们甚至可以看到这个页面的html似乎仍然是错误的。

EN

回答 6

Stack Overflow用户

发布于 2018-10-30 18:58:40

如果你只是想保护一个js文件,这样做是错误的。但是,如果您只是想保护路由不被用户手动访问,那么您必须尝试Nuxt Middlewares,并编写一个用于身份验证和用户获取的中间件。

中间件结构可以像下面这样简单:

代码语言:javascript
复制
export default function ({ store, redirect }) {
  // If the user is not authenticated
  if (!store.state.authenticated) {
    return redirect('/login')
  }
}

您可以简单地在根(或secretPage)布局中使用它:

代码语言:javascript
复制
<template>
  <h1>Secret page</h1>
</template>

<script>
export default {
  middleware: 'authenticated'
}
</script>
票数 17
EN

Stack Overflow用户

发布于 2018-09-30 03:22:30

你可以使用nuxt/auth包,这是你的工作的情况,可以作为一个插件和模块,你可以检查它是否有be可访问的页面,它自动运行并具有语义结构。

票数 7
EN

Stack Overflow用户

发布于 2018-09-30 03:10:56

您不能将您的秘密保存在客户端(在您的JS代码中),每个使用您的应用程序的人都可以从他的浏览器中获得它。您需要将密钥保存在服务器端,并制作一些验证端点来提供用户是否有效,或者只是在登录后保留他的会话。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52571210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档