登录模块与token的使用和创建

登录模块的使用与创建

一、如何实现登录注册

1.在Vue里创建文件Login.vue和user.vue
在Vue里创建文件Login.vue和user.vue
2.在router里配置路由

    {
		path: '/user',
		name: 'User',
		component: () => import('../views/user/User.vue'),
		meta: {
			keep: true
		}
	},
	{
		path: '/login',
		name: 'Login',
		meta: {
			nofoot: true
		},
		component: () => import('../views/user/Login.vue')
	},

3.在user页面点击跳转到Login页面

<template>
	<div>
		<router-link to="/login">登录</router-link>
	</div>
</template>

4.新建api文件,获取登录接口

import request from '../../utils/request.js'
import qs from 'qs'
 
 //请求登录的文档接口
function Login(data){
	// 返回一个promise
	return new Promise((resolve,reject)=>{
		request.post("/member/index_login.php",qs.stringify(data))
		.then(res=>{resolve(res)})
		.catch(err=>{reject(err)})
	})
	
}
//导出接口
export {Login};

5.在Login页面实现单击登录

<template>
	<div>
	//进行数据的双向绑定
		用户名:<input type="text" v-model="user.userid" /><br>
		密  码:<input type="password" v-model="user.pwd" /><br>
		//单击时,调用login()事件
		<button @click="login()">登录</button>
	</div>
</template>

<script>
//引入api文件
	import {Login} from '@api/user/user.js'

	export default {
		data() {
			return {
				user: {
				//接口文档数据
					fmdo: "login",
					dopost: "login",
					userid: '',
					pwd: '',
				}
			}
		},
		methods: {
		//调用登录接口,实现成功登录
			login() {
				Login(this.user)
					.then(res => {
					//登录成功是弹出提示框
						alert(res.data.msg);		
						//判断是否登录成功,status == 1是接口文档里定义的,等于1是登录成功
						if (res.data.status == 1) {
							//登录成功跳转到user页面
							this.$router.replace("/user")
						}
					})
			}
		}
	}
</script>

二、登录成功后获取用户信息

1.在api文档里添加获取用户信息接口

function GetUserInfo(){
	// 登陆成功时获取用户信息的文档接口
	return new Promise((resolve,reject)=>{
		request.get("/member/ajax_login.php")
		.then(res=>{resolve(res)})
		.catch(err=>{reject(err)})
	})
	
}
//导出接口
export {Login,GetUserInfo};

2.在user页面获取用户信息

<template>
	<div>
	//登录成功时显示用户信息
		<p v-if="userInfo.M_LoginID">
			<span>{{userInfo.M_LoginID}}:</span>
			<span>{{userInfo.M_Scores}}:</span>
			<span>退出</span>
		</p>
		//否则显示登陆
		<p v-else><router-link to="/login">登录</router-link></p>
	</div>
</template>
<script>
//引入api文件的GetUserInfo方法
	import {GetUserInfo} from "../../api/user/user.js"
	export default{
		data(){
			return{
			//用户信息
				userInfo:{}
			}
		},
		created() {
			//调用获取用户信息的方法
			GetUserInfo()
				.then(res => {
					if (res.data) {
						// 重新赋值个userInfo
						this.userInfo = res.data;
					}
				})
		},
}

三、登陆后退出

1.在user里,当单击退出键时调用logout()事件
2.在user里导入登陆接口文档Login
3.在user页面的methods里通过传参的不同实现退出登陆

<template>
	<div>
			//单击退出键时调用logout()事件
			<span @click="logout()">退出</span>
		</p>
	</div>
</template>Login
<script>
//引入api文件的GetUserInfo,Login方法
	import {GetUserInfo,Login} from "../../api/user/user.js"
	
	methods:{
			//退出方法
			logout(){
			//登陆和退出的接口一样,传入的参数不一样
				Login({dopost:"exit"})
				.then(res=>{
					alert(res.data.msg);
					//如果状态为1代表退出成功
					if(res.data.status==1){
						this.userInfo={};
						}
				})
			}
		}

四、token的使用

1.介绍
1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

2、Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

3、使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
2.使用
登陆时保存token

methods: {
			login() {
				Login(this.user)
					.then(res => {
						alert(res.data.msg);
						// 判断是否登陆成功
						if (res.data.status == 1) {
							//获取查询参数
							var redirect=this.$route.query.redirect||"/user";
							// 当登录成功时候把用户的token存起来
							window.localStorage.setItem("token",res.data.token);
							this.$router.replace(redirect);
						}
					})
			}
		}

在页面获取用户信息
在这里插入图片描述
然后在utils的request里添加token请求头
在这里插入图片描述
退出时,要清除token

<template>
	<div>
			//单击退出键时调用logout()事件
			<span @click="logout()">退出</span>
		</p>
	</div>
</template>Login
<script>
//引入api文件的GetUserInfo,Login方法
	import {GetUserInfo,Login} from "../../api/user/user.js"
	
	methods:{
			//退出方法
			logout(){
			//登陆和退出的接口一样,传入的参数不一样
				Login({dopost:"exit"})
				.then(res=>{
					alert(res.data.msg);
					//如果状态为1代表退出成功
					if(res.data.status==1){
						this.userInfo={};
						//注销token
						window.localStorage.removeItem("token");
						}
				})
			}
		}

仅供参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中生成Token的方式有多种选择,以下是其中几种常见的方式: 1. 使用JSON Web Token(JWT):JWT是一种开放标准,可以在用户和服务器之间传递安全信息。在Spring Boot中,你可以使用第三方库(例如jjwt)来生成和验证JWT。首先,你需要在后端生成一个JWT,将用户信息和其他必要的信息(例如过期时间)加密到JWT中,并将其返回给客户端。客户端在后续的请求中将JWT放入请求的Header或Cookie中,服务器端在接收到请求后可以解析JWT并验证其有效性。 2. 使用OAuth2:OAuth2是一种授权框架,用于授权第三方应用访问受保护的资源。在Spring Boot中,你可以使用Spring Security OAuth2模块来实现OAuth2认证和授权。你可以配置一个授权服务器来生成和管理访问令牌(Token),客户端通过向授权服务器发送认证请求获取Token,并在后续的请求中携带Token来获取资源。 3. 使用Session和Cookie:传统的方式是使用Session和Cookie来管理用户身份认证。在Spring Boot中,你可以使用Spring Session模块来管理Session,并结合Spring Security来处理身份认证。当用户登录成功后,服务器会创建一个唯一的Session ID,并将其存储在Cookie中发送给客户端。客户端在后续的请求中携带该Cookie,服务器通过Session ID来判断用户的身份。 这些是一些常见的生成Token的方式,你可以根据你的需求和项目的特点选择合适的方式来实现Token的生成和验证。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值