vue 安全限制 短信验证_使用Vuex解决Vue中的身份验证

本文介绍如何使用Vuex管理Vue应用的用户验证状态,避免使用本地存储来存储tokens。通过创建Vuex模块,配置Axios,设置登录、注册组件,以及处理退出登录,实现安全的身份验证流程。同时,利用vue-router保护受权限限制的页面,并处理token过期情况,提升用户体验。
摘要由CSDN通过智能技术生成

传统方式中,许多人使用本地存储,来管理通过客户端验证生成的tokens。一个大问题是如何有更好的方式,来管理验证tokens,从而允许我们来存储更大的用户信息。

这就是Vuex的作用。 Vuex为Vue.js应用管理状态.。对于应用中所有的组件来说,它被当做中央存储,并用规则确保状态只能以可预见的方式改变。

对于经常检查本地存储来说,听起来是个更好的选择?让我们一起来探索下吧。

建立应用模块

对于这个项目,我们想创建一个使用vuex和vue-router的vue应用。我们会使用vue cli 3.0 来创建一个vue项目,并从选项中选择路由和vuex。

执行下面的命令开始创建:$ vue create vue-auth

按照对话框的提示,添加必要的信息,并选择我们需要的选项,完成安装。

下一步, 安装axios:$ npm install axios --save

配置Axios

我们在许多组件中都需要用到axios。让我们在全局整体来配置它,这样当我们需要它的时候,不用每次都去引入。

打开 ./src/main.js 文件,并且添加下面:[...]import store from './store'import Axios from 'axios'Vue.prototype.$http = Axios;

const token = localStorage.getItem('token')if (token) {

Vue.prototype.$http.defaults.headers.common['Authorization'] = token

}

[...]

现在,当我们想在组件内使用axios时, 我们可以用this.$http ,这样相当于直接是axios。我们也可以在axios头部给自己的token, 设置身份验证,这样如果token是必需的,我们的请求将处于控制中。在这种方式下,当我们想要发送请求时,任何时候都不用设置token。

完成之后,让我们使用服务器来处理身份验证。

创建身份验证服务

我已经写过关于这个,在我解释如何用vue-router来解决身份验证时。仔细看看Setup Node.js Server 这个章节。

创建组件

登录组件

创建Login.vue 在 ./src/components 目录下。 之后, 给登录页面添加模板:

Sign in

Email

Password


Login

当你做完之后, 添加data属性,将其绑定到HTML表单中:[...]

export default {

data(){      return {        email : "",        password : ""

}

},

}

现在, 让我们给登录添加方法:[...]

export default {

[...]

methods: {      login: function () {        let email = this.email

let password = this.password        this.$store.dispatch('login', { email, password })

.then(() => this.$router.push('/'))

.catch(err => console.log(err))

}

}

}

我们正在使用vuex的action — login 来解决身份验证。我们可以在将actions细化到回调里面,这样就可以在自己的组件里面做一些很酷的事情了。

注册组件

跟login组件类似,那我们给注册用户弄一个了。在组件目录里面创建Register.vue ,并将下面的添加进去:

Register

Name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值