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