所有分类
  • 所有分类
  • 后端开发
Vue项目安全卫士:登录验证一键搞定

Vue项目安全卫士:登录验证一键搞定

在Vue的开发过程中,登录验证和用户权限管理是一个非常重要的问题。在前端开发中,我们通常会使用token来实现登录验证。登录验证和用户权限管理是Vue开发中常见的问题。

Vue项目安全卫士:登录验证一键搞定

搞定登陆和权限真不轻松,记得注意两点哦——登陆验证和用户权限管理。如果这两个处问题解决了,那咱们的系统就会更安全了,用户也可以安心做自己的事情。今天,我就简单跟你们说说,怎么在Vue上实现这些功能。

登录验证

没想到登录认证还是咱APP安不安全的保护伞!咱们前端用的就是那个叫啥的什么对,就只要个token就能搞定。当你们顺利登进咱app后,系统就会给你一个独家专线的token,然后给它保存到手机里。发每个消息都别忘了带着它,因为后端就是靠着这玩意儿确认你有没有真的登录!

我们快来搞定 Vue 项目的登录验证!简单地使用 AXIOS HTTP 库发个请求就行了。不要忘记在请求头上加上 Authorization 字段,还有填好 token。接下来马上教你怎么做。

javascript
搞定进入了就赶紧把token扔进localStorage。
记住这句话"就是你刚刚收到的那个东东",保存到手机内存里!
每次发请求时记得添个Authorization头!
你知道么?Axios插件里有个叫request的拦截器,让我们来给它加点儿调料。
  config =>{
我们从你的手机上,找出了那个叫'token'的东西。
    if (token){
把"Authorization":"Bearer $token"放在配置头里面搞定!
    }
// 在login组件中进行登录操作
methods: {
  login() {
    // 调用登录接口,获取token
    axios.post('/api/login', { username: this.username, password: this.password })
      .then(response => {
        // 登录成功后将token存储到localStorage
        localStorage.setItem('token', response.data.token);
        // 跳转到主页
        this.$router.push('/home');
      })
      .catch(error => {
        console.error(error);
      });
  }
}

return config;
},
error =>{
return Promise.reject(error);
});

用户权限管理

说到权限管理,这不就是控制用户能否访问某些系统内容!再说到Vue里头那个叫‘路由守卫’的东西,就非常适合解决这个问题!它能在你要翻页时先查查你有没有权限,以免你冒然行动、胡乱操作~

跟你说这个东西挺有意思的,可以教会你们怎么用路由守卫管制我们网站的用户进进出出!

//路由守卫实现用户权限管理

你知道吗?我们这里的路由器有个牛逼功能,就是”每次经过(from, to, next)”这种。

我们就叫它“需要确认身份”的功能!

想要看啥呀?先登录!那个标识叫 requireAuth 就是提醒你还没登录呐~

next(‘/login’);

} else {

// 在router/index.js中定义路由守卫
router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('token');
  if (to.meta.requiresAuth && !token) {
    // 如果页面需要登录验证,且用户未登录,则跳转到登录页
    next('/login');
  } else if (token && to.meta.roles) {
    // 如果用户已登录,且页面需要特定角色的权限
    const role = 'admin'; // 假设当前用户的角色为admin
    if (to.meta.roles.includes(role)) {
      // 用户角色符合要求,可以访问页面
      next();
    } else {
      // 用户角色不符合要求,跳转到无权限页面
      next('/403');
    }
  } else {
    next();
  }
});

咱就赶紧看看哪个角色才是关键看完了吗?在这儿,to.meta.roles这玩意儿可真重要。

这次咱看下用户的作用呗!首先,咱们试下GetCurrentUserRoles()这个功能如何?

有些需要填写角色的地方,但咱没那个权力,那就直接忽略掉。

next(‘/noPermission’);

} else {

next();

}

页面级别权限控制

咱不只是要关注路由器守护,网页访问权限这块也得操心!先搞清楚自己啥角色,再跟网页需要的权限两相对照,看哪些可以放行,这样才能更自由地展示各类信息!

以下是一个简单示例代码展示了页面级别权限控制:

//页面级别权限控制

<h1>欢迎访问管理员页面</h1>

<div v-if=”isAdmin”>这里是管理员特有内容</div>

<div v-else>您无权访问此页面</div>

export default {

  

有权限的页面内容

无权限的页面内容

export default { data() { return { hasPermission: false }; }, mounted() { // 在组件加载时判断用户是否有权限 const token = localStorage.getItem('token'); if (token) { const role = 'admin'; // 假设当前用户的角色为admin if (this.$route.meta.roles.includes(role)) { this.hasPermission = true; } } } };

data(){

return {

isAdmin: false,

};

created(){

咱们就看着办,先查查checkAdminRole怎么样。

};

总结

看完那篇文章,我明白咋用Vue做登录验证和权限管控。就靠token认证身份,然后路由守卫限制权限,分层管理就行,这样既能保证系统安全,也不影响大家开心玩耍。

做项目?随机应变很重要,试试各种不同的法子。硬上可不行,咱得多试几次,找到平衡点才行。这样我们的系统才能稳定又好用!

原文链接:https://www.icz.com/technicalinformation/web/2024/04/13121.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?