vue.js controls user login
This time I will bring you vue.js to control user login. What are the precautions for vue.js to control user login. The following is a practical case, let’s take a look.
Using vue-router to control login in vue is very common in background management systems, but it is not like the familiar process before. However, as long as everyone understands the use of vue-router, it is easy to implement.
First we need to write the login page and main page:
<template>
<p class="login">
<table width="100%" height="100%">
<tr height="41"><td class="logintb" colspan="2"> </td></tr>
<tr height="100%" class="loginbg">
<td id="left_cont">
<table width="100%" height="100%">
<tr height="155"><td colspan="2"> </td></tr>
<tr>
<td width="20%" rowspan="2"> </td>
<td width="60%">
<table width="100%">
<tr height="70"><td align="right"></td></tr>
<tr height="274">
<td valign="top" align="right">
<img src="../../static/images/logo.png"/>
</img/>
</td>
</tr>
</table>
</td>
<td width="15%" rowspan="2"> </td>
</tr>
<tr><td colspan="2"> </td></tr>
</table>
</td>
<td id="right_cont">
<table height="100%">
<tr height="30%"><td colspan="3"> </td></tr>
<tr>
<td width="30%" rowspan="5"> </td>
<td valign="top" id="form">
<table valign="top" width="50%">
<tr><td colspan="2"><h4 style="letter-spacing:1px;font-size:16px;">管理后台</h4></td></tr>
<tr><td>管理员:</td><td><input type="text" v-model.trim="username" value="" /></td></tr>
<tr><td>密 码:</td><td><input type="password" v-model.trim="pwd" value="" /></td></tr>
<!-- <tr><td>验证码:</td><td><input type="text" name="" value="" style="width:80px;"/></td></tr> -->
<tr class="bt" align="center"><td> <input type="submit" @click="login" value="登陆" /></td><td> </td></tr>
</table>
</td>
<td rowspan="5"> </td>
</tr>
<tr><td colspan="3"> </td></tr>
</table>
</td>
</tr>
<tr id="login_bot"><td colspan="2"><p>Copyright © 2017-{{getNowDate()}} Tujiawang</p></td></tr>
</table>
</p>
</template>
<script>
import axios from 'axios'
axios.defaults.withCredentials = true
export default{
data(){
return {
username:'',
pwd:''
}
},
methods: {
login() {
var params = new URLSearchParams();
params.append('username', this.username);
params.append('password', this.pwd);
axios.post(this.HOST+'/home/system/login',params).then(res => {
if(res.data.code ==1){
sessionStorage.username = this.username;
this.$router.push({path:'/main'})
}else{
alert('登录失败')
}
})
},
getNowDate(){
var d = new Date();
return d.getFullYear();
}
}
}
</script>Note on the login page above: In the login method, successful login needs to be written to sessionStorage for routing to judge
The most important thing is the content in the routing file:
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
const routes = [
{
path: '/',
redirect: '/login'
},
{
path: '/login',
name: 'login',
component: (resolve)=>{require(['../components/Login'],resolve)}
},
{
path: '/main',
name: 'main',
component: (resolve)=>{require(['../components/Home'],resolve)},
redirect: 'main/info',
children: [{
path: 'info',
meta: {
id:-1
},
component: (resolve)=>{require(['../components/Main'],resolve)}
}
]
},
{
path: '/vips',
name: 'vips',
component: (resolve)=>{require(['../components/Home'],resolve)},
redirect: 'vips/list',
children: [{
path: 'list',
meta: {
id:0
},
component: (resolve)=>{require(['../components/VipsList'],resolve)}
},
{
path: 'detail',
meta: {
id:0
},
component: (resolve)=>{require(['../components/VipsDetail'],resolve)}
},
{
path: 'userlog',
meta: {
id:0
},
component: (resolve)=>{require(['../components/UserLog'],resolve)}
}
]
}
];
const router = new Router({
routes
});
/**
* to:表示目标路由
* from:表示来源路由
* next:表示执行下一步操作
*/
router.beforeEach((to, from, next) => {
if (to.path === '/login') { // 当路由为login时就直接下一步操作
next();
} else { // 否则就需要判断
if(sessionStorage.username){ // 如果有用户名就进行下一步操作
next()
}else{
next({path: '/login'}) // 没有用户名就跳转到login页面
}
}
})
export default routerCurrently this is just a simple process. This method is officially called routing guard. Another way to write it is to add the control of whether login is required in meta and judge it in beforeEach. , the same method as above.
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
About the summary of errors thrown by JS
How to avoid features and browser inference in JS
The above is the detailed content of vue.js controls user login. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undresser.AI Undress
AI-powered app for creating realistic nude photos
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undress AI Tool
Undress images for free
Clothoff.io
AI clothes remover
AI Hentai Generator
Generate AI Hentai for free.
Hot Article
Hot Tools
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
1377
52
In-depth discussion of how vite parses .env files
Jan 24, 2023 am 05:30 AM
When using the Vue framework to develop front-end projects, we will deploy multiple environments when deploying. Often the interface domain names called by development, testing and online environments are different. How can we make the distinction? That is using environment variables and patterns.
What is the difference between componentization and modularization in vue
Dec 15, 2022 pm 12:54 PM
The difference between componentization and modularization: Modularization is divided from the perspective of code logic; it facilitates code layered development and ensures that the functions of each functional module are consistent. Componentization is planning from the perspective of UI interface; componentization of the front end facilitates the reuse of UI components.
Detailed graphic explanation of how to integrate the Ace code editor in a Vue project
Apr 24, 2023 am 10:52 AM
Ace is an embeddable code editor written in JavaScript. It matches the functionality and performance of native editors like Sublime, Vim, and TextMate. It can be easily embedded into any web page and JavaScript application. Ace is maintained as the main editor for the Cloud9 IDE and is the successor to the Mozilla Skywriter (Bespin) project.
Let's talk in depth about reactive() in vue3
Jan 06, 2023 pm 09:21 PM
Foreword: In the development of vue3, reactive provides a method to implement responsive data. This is a frequently used API in daily development. In this article, the author will explore its internal operating mechanism.
Explore how to write unit tests in Vue3
Apr 25, 2023 pm 07:41 PM
Vue.js has become a very popular framework in front-end development today. As Vue.js continues to evolve, unit testing is becoming more and more important. Today we’ll explore how to write unit tests in Vue.js 3 and provide some best practices and common problems and solutions.
A simple comparison of JSX syntax and template syntax in Vue (analysis of advantages and disadvantages)
Mar 23, 2023 pm 07:53 PM
In Vue.js, developers can use two different syntaxes to create user interfaces: JSX syntax and template syntax. Both syntaxes have their own advantages and disadvantages. Let’s discuss their differences, advantages and disadvantages.
A brief analysis of how vue implements file slicing upload
Mar 24, 2023 pm 07:40 PM
In the actual development project process, sometimes it is necessary to upload relatively large files, and then the upload will be relatively slow, so the background may require the front-end to upload file slices. It is very simple. For example, 1 A gigabyte file stream is cut into several small file streams, and then the interface is requested to deliver the small file streams respectively.
A brief analysis of how to handle exceptions in Vue3 dynamic components
Dec 02, 2022 pm 09:11 PM
How to handle exceptions in Vue3 dynamic components? The following article will talk about Vue3 dynamic component exception handling methods. I hope it will be helpful to everyone!


