「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

注銷的功能,直接寫在springboot的controller里面就可以了,通過刪除redis的方式來完成用戶的注銷功能。源碼:https://github.com/limingios/wxProgram.git 中No.15

創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、新縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為新縣等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

后端代碼

后端代碼通過用戶user的Id,刪除redis的方式來完成。編寫對(duì)應(yīng)的controller

  • springboot -api 項(xiàng)目中。

package?com.idig8.controller;

import?java.util.UUID;

import?org.apache.commons.lang3.StringUtils;
import?org.springframework.beans.BeanUtils;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.web.bind.annotation.PostMapping;
import?org.springframework.web.bind.annotation.RequestBody;
import?org.springframework.web.bind.annotation.RestController;

import?com.idig8.pojo.Users;
import?com.idig8.pojo.vo.UsersVO;
import?com.idig8.service.UserService;
import?com.idig8.utils.JSONResult;
import?com.idig8.utils.MD5Utils;

import?io.swagger.annotations.Api;
import?io.swagger.annotations.ApiImplicitParam;
import?io.swagger.annotations.ApiOperation;

@RestController
@Api(value="用戶注冊(cè)登錄的接口",tags={"注冊(cè)和登錄的controller"})
public?class?RegistLoginController?extends?BasicController{

????@Autowired
????private?UserService?userService;


????@ApiOperation(value="用戶注冊(cè)",notes="用戶注冊(cè)的接口")
????@PostMapping("/regist")
????public?JSONResult?regist(@RequestBody?Users?user)?{
????????//1.判斷用戶名和密碼不能為空
????????if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword()))?{
????????????return?JSONResult.errorMsg("用戶名或密碼不能為空");
????????}

????????//2.判斷用戶名是否存在
????????boolean?usernameIsExist?=?userService.queryUsernameIsExist(user.getUsername());
????????if(!usernameIsExist)?{
????????????user.setNickname(user.getUsername());
????????????try?{
????????????????user.setPassword(MD5Utils.getMD5Str(user.getPassword()));
????????????}?catch?(Exception?e)?{

????????????????return?JSONResult.errorMsg(e.getMessage());
????????????}
????????????user.setFollowCounts(0);
????????????user.setReceiveLikeCounts(0);
????????????user.setFansCounts(0);
????????????userService.saveUser(user);
????????}else?{
????????????return?JSONResult.errorMsg("用戶名或已經(jīng)存在,請(qǐng)更換在試試!");
????????}

????????UsersVO?userVO?=?setUserRedisSessionToken(user);

????????return?JSONResult.ok(userVO);
????}

????@ApiOperation(value="用戶登錄",notes="用戶登錄的接口")
????@PostMapping("/login")
????public?JSONResult?login(@RequestBody?Users?user)?{
????????//1.判斷用戶名和密碼不能為空
????????if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword()))?{
????????????return?JSONResult.errorMsg("用戶名或密碼不能為空");
????????}

????????//2.判斷用戶名是否存在
????????Users?userObject?=?userService.queryUserIsExist(user);

????????if(userObject==null){
????????????return?JSONResult.errorMsg("用戶名或密碼不存在!");
????????}

????????UsersVO?userVO?=?setUserRedisSessionToken(userObject);
????????return?JSONResult.ok(userVO);
????}

????@ApiOperation(value="用戶注銷",notes="用戶注銷的接口")
????@ApiImplicitParam(name="userId",value="用戶id",required=true,dataType="String",paramType="query")
????@PostMapping("/logout")
????public?JSONResult?logout(String?userId)?{

????????try?{
????????????redis.del(USERS_REDIS_SESSION?+?":"?+?userId);
????????}?catch?(Exception?e)?{
????????????return?JSONResult.errorMsg("注銷失敗"+e.getMessage());
????????}
????????return?JSONResult.ok();
????}

????public?UsersVO?setUserRedisSessionToken(Users?userModel)?{
????????String?uniqueToken?=?UUID.randomUUID().toString();
????????redis.set(USERS_REDIS_SESSION?+?":"?+?userModel.getId(),?uniqueToken,?USERS_REDIS_SESSION_TL);

????????UsersVO?userVO?=?new?UsersVO();
????????BeanUtils.copyProperties(userModel,?userVO);
????????userVO.setUserToken(uniqueToken);
????????return?userVO;
????}
}

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

前端代碼

  • 用戶登錄跳轉(zhuǎn)到個(gè)人信息頁(yè)面
    > 修改對(duì)應(yīng)的js跳轉(zhuǎn),用戶登錄后保存對(duì)應(yīng)的token到redis中

const?app?=?getApp()

Page({
??data:?{

??},

??doLogin:?function?(e)?{
????var?formObject?=?e.detail.value;
????var?username?=?formObject.username;
????var?password?=?formObject.password;

????//?簡(jiǎn)單驗(yàn)證
????if?(username.length?==?0?||?password.length?==?0)?{
??????wx.showToast({
????????title:?'用戶名或密碼不能為空',
????????icon:?'none',
????????duration:?3000
??????})
????}?else?{
??????wx.showLoading({
????????title:?'正在加載中。。。'
??????});
??????wx.request({
????????url:?app.serverUrl?+?"/login",
????????method:?"POST",
????????data:?{
??????????username:?username,
??????????password:?password
????????},
????????header:?{
??????????'content-type':?'application/json'?//?默認(rèn)值
????????},
????????success:?function?(res)?{
??????????console.log(res.data);
??????????var?status?=?res.data.status;
??????????wx.hideLoading();
??????????if?(status?==?200)?{
????????????wx.showToast({
??????????????title:?"用戶登陸成功~!",
??????????????icon:?'none',
??????????????duration:?3000
????????????})
????????????app.userInfo?=?res.data.data;
????????????wx.redirectTo({
??????????????url:?'../mine/mine',
????????????})

??????????}?else?if?(status?==?500)?{
????????????wx.showToast({
??????????????title:?res.data.msg,
??????????????icon:?'none',
??????????????duration:?3000
????????????})
??????????}
????????}
??????})
????}
??},
??goRegisterPage:?function?(e)?{
????wx.redirectTo({
??????url:?'../userRegister/userRegister',
????})
??}
})

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

  • 個(gè)人信息頁(yè)面注銷
    > 在注銷按鈕中綁定事件方法,然后從app的全局變量app.userInfo中獲得用戶的id,發(fā)送請(qǐng)求,完成redis中用戶的id的刪除,完成注銷并跳轉(zhuǎn)到注冊(cè)頁(yè)面。

<view>

??<view?class='container'>
??????<image?src="{{faceUrl}}"?class="face"></image>
????<label?class='nickname'>{{nickname}}</label>
??????<button?size='mini'?class='primary'?bindtap='uploadVideo'>?上傳作品</button>
??????<button?size='mini'?type=''?class='logout'?bindtap='logout'>注銷</button>

????????<button?size='mini'?type=''?class='follow'?data-followType='0'?bindtap='followMe'>已關(guān)注</button>

????????<button?size='mini'?type='primary'?class='follow'?data-followType='1'?bindtap='followMe'>關(guān)注我</button>


????<view?class='container-row'>
??????<label?class='info-items'>{{fansCounts}}?粉絲</label>
??????<label?class='info-items'>{{followCounts}}?關(guān)注</label>
??????<label?class='info-items'>{{receiveLikeCounts}}?獲贊</label>
????</view>
??</view>

</view>

<view?class="line"></view>

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

//?pages/mine/mine.js
const?app?=?getApp()
Page({

??/**
???*?頁(yè)面的初始數(shù)據(jù)
???*/
??data:?{
????faceUrl:?"../../resource/images/noneface.png",
????nickname:?"昵稱",
????fansCounts:?0,
????followCounts:?0,
????receiveLikeCounts:?0,
??},
??logout:function(e){
????var?user?=?app.userInfo;
????wx.showLoading({
??????title:?'正在注銷中。。。'
????});
????wx.request({
??????url:?app.serverUrl?+?"/logout?userId="+user.id,
??????method:?"POST",
??????header:?{
????????'content-type':?'application/json'?//?默認(rèn)值
??????},
??????success:?function?(res)?{
????????console.log(res.data);
????????var?status?=?res.data.status;
????????wx.hideLoading();
????????if?(status?==?200)?{
??????????wx.showToast({
????????????title:?"用戶注銷成功~!",
????????????icon:?'none',
????????????duration:?3000
??????????})
??????????app.userInfo?=?null;
??????????wx.redirectTo({
????????????url:?'../userRegister/userRegister',
??????????})

????????}?else?if?(status?==?500)?{
??????????wx.showToast({
????????????title:?res.data.msg,
????????????icon:?'none',
????????????duration:?3000
??????????})
????????}
??????}
????})
??},

??/**
???*?生命周期函數(shù)--監(jiān)聽頁(yè)面加載
???*/
??onLoad:?function?(options)?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽頁(yè)面初次渲染完成
???*/
??onReady:?function?()?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽頁(yè)面顯示
???*/
??onShow:?function?()?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽頁(yè)面隱藏
???*/
??onHide:?function?()?{

??},

??/**
???*?生命周期函數(shù)--監(jiān)聽頁(yè)面卸載
???*/
??onUnload:?function?()?{

??},

??/**
???*?頁(yè)面相關(guān)事件處理函數(shù)--監(jiān)聽用戶下拉動(dòng)作
???*/
??onPullDownRefresh:?function?()?{

??},

??/**
???*?頁(yè)面上拉觸底事件的處理函數(shù)
???*/
??onReachBottom:?function?()?{

??},

??/**
???*?用戶點(diǎn)擊右上角分享
???*/
??onShareAppMessage:?function?()?{

??}
})

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

流程演示

  • 用戶登錄,redis內(nèi)增加
    >用戶登錄保存user的id到redis中

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

  • 點(diǎn)擊注銷,查看redis內(nèi)容
    >redis清空了對(duì)應(yīng)user的id信息,跳轉(zhuǎn)到注冊(cè)頁(yè)面。

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

swagger2的講解

之前寫的內(nèi)容有老鐵反應(yīng),swagger能詳細(xì)講講參數(shù)不,我說這個(gè)坑我一定填。

####注釋關(guān)鍵字詳解

「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

  • @ApiOperation

    @ApiOperation(value = “接口說明”, httpMethod = “接口請(qǐng)求方式”, response = “接口返回參數(shù)類型”, notes = “接口發(fā)布說明”

  • @ApiImplicitParam
    「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

  • @ApiModel

    @ApiModelProperty()用于方法,字段; 表示對(duì)model屬性的說明或者數(shù)據(jù)操作更改
    value–字段說明
    name–重寫屬性名字
    dataType–重寫屬性類型
    required–是否必填
    example–舉例說明
    hidden–隱藏

@ApiModel(value="user對(duì)象",description="用戶對(duì)象user")
public?class?Users?implements?Serializable{
????private?static?final?long?serialVersionUID?=?1L;
?????@ApiModelProperty(value="用戶名",name="username",example="idig8")
?????private?String?username;
?????@ApiModelProperty(value="狀態(tài)",name="state",required=true)
??????private?Integer?state;
??????private?String?password;

??????@ApiModelProperty(value="id數(shù)組",hidden=true)
??????private?String[]?ids;
}

PS:OK,這就是咱們個(gè)人信息中的注銷功能,也可以好好熟悉下swagger api的使用其實(shí)真的很有用!

>>原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
>>原文鏈接地址:「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)

文章標(biāo)題:「小程序JAVA實(shí)戰(zhàn)」小程序我的個(gè)人信息-注銷功能(42)
網(wǎng)站網(wǎng)址:http://bm7419.com/article48/jceghp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、關(guān)鍵詞優(yōu)化、定制開發(fā)虛擬主機(jī)、網(wǎng)站策劃、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)