抖音实战~用户登出

在这里插入图片描述

一、前端
1. 登出流程

在这里插入图片描述

2. 流程简述
  • 1.点击登出按钮触发登出事件
  • 2.调用登出后端api
  • 3.后端返回
    • 3.1. 成功:删除终端缓存的用户信息和token信息
    • 3.2. 失败:提示错误信息
  • 4.跳转主页
3. 源码
<view 
				:class="{'logout':!logoutTouched, 'logout-touched': logoutTouched}" 
				@touchstart="touchstartLogout()"
				@touchend="touchendLogout()"
				@click="logout()"
				style="margin-top: 20rpx;padding-left: 30rpx;padding-right: 30rpx;width: 750rpx;height: 80rpx;display: flex;flex-direction: row;justify-content: center;">
				
				<text style="color: #FFFFFF;align-self: center;font-size: 20px;">退出登录</text>

			</view>
   logout() {
				var me = this;
				var userId = getApp().getUserInfoSession().id;
				
				var serverUrl = app.globalData.serverUrl;
				uni.request({
					method: "POST",
					url: serverUrl + "/passport/logout?userId=" + userId,
					success(result) {
						var status = result.data.status;
						if (status == 200) {
					    	// 清除终端缓存
							getApp().clearUserInfo();
							uni.reLaunch({
								url: "../index/index"
							})
						} else if (status != 200) {
							uni.showToast({
								title: result.data.msg,
								icon: "none"
							});
						}
						
					}
				});				
			}

删除缓存方法

// 清除用户信息
clearUserInfo () {
	uni.removeStorageSync("userInfo");
	uni.removeStorageSync("userToken");
}
二、后端
2.1. 登出逻辑

删除redis缓存

2.2. 源码
    @PostMapping("logout")
    public GraceJSONResult logout(@RequestParam String userId,
                                  HttpServletRequest request) throws Exception {

        // 后端只需要清除用户的token信息即可,前端也需要清除,清除本地app中的用户信息和token会话信息
        redis.del(REDIS_USER_TOKEN + ":" + userId);

        return GraceJSONResult.ok();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gblfy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值