亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot實(shí)現(xiàn)網(wǎng)站的登陸注冊(cè)邏輯記錄

 更新時(shí)間:2021年10月12日 15:32:56   作者:xbhog  
登陸注冊(cè)功能是我們?nèi)粘i_(kāi)發(fā)中經(jīng)常遇到的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)現(xiàn)網(wǎng)站的登陸注冊(cè)邏輯的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

該文章主要是為了整理之前學(xué)習(xí)項(xiàng)目中的知識(shí)點(diǎn),并進(jìn)行一定程度的理解。

技術(shù)列表:

  • SpringBoot
  • MySQL
  • redis
  • JWT

用戶(hù)登錄邏輯:

首先打開(kāi)前端登錄頁(yè)面,F(xiàn)12進(jìn)行網(wǎng)頁(yè)URL抓?。?/p>

隨便輸入信息,查看請(qǐng)求后端的地址:

地址:

請(qǐng)求 URL: http://localhost:8888/login
請(qǐng)求方法: POST
狀態(tài)代碼: 200 
遠(yuǎn)程地址: [::1]:8888
引用站點(diǎn)策略: strict-origin-when-cross-origin

很明顯,前端用戶(hù)輸入賬戶(hù),通過(guò)post請(qǐng)求傳遞給后端接收:

@RequestMapping("/login")
public class LoginController {
    @Autowired
    private LoginService loginService;
    @PostMapping
    public Result login(@RequestBody LoginParam loginParam){
        return loginService.login(loginParam);
    }

}

這里為了方便傳輸,把前端參數(shù)封裝成對(duì)象傳入.

后端驗(yàn)證查詢(xún)賬戶(hù)的邏輯操作:

  • 獲取賬戶(hù)密碼
  • 判斷賬戶(hù)密碼是否為空
  • 密碼加密,采用MD5加密+鹽的操作
  • 通過(guò)處理的賬戶(hù)密碼(加密)進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)
String pwd = DigestUtils.md5Hex(password + salt);
//根據(jù)賬號(hào)和加密的密碼進(jìn)行數(shù)據(jù)庫(kù)的查找
SysUser sysUser = sysUserService.findUser(account, pwd);

查找成功,使用JWT工具包生成token,保存到redis中

向前端返回生成的token,檢查token,進(jìn)行登錄

{
    "code": 200,
    "success": true,
    "msg": "success",
    "data": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzQ4OTY1MDIsInVzZXJJZCI6MSwiaWF0IjoxNjM0MDA3NDcwfQ.9elJSiGa-QARLqKGLTeFW9go7ujsArd0QV_HihHfEm0"
}

這里就實(shí)現(xiàn)了JWT和redis實(shí)現(xiàn)簡(jiǎn)單的登錄驗(yàn)證功能。

用戶(hù)注冊(cè)邏輯:

前端請(qǐng)求:

前端傳遞賬戶(hù)名、密碼、昵稱(chēng),調(diào)用http://localhost:8888/register地址進(jìn)行post傳參,后端接收參數(shù)

1、獲取前端參數(shù),判斷參數(shù)是否合法(是否為空)

2、判斷賬戶(hù)是否存在,存在,返回賬戶(hù)已經(jīng)被注冊(cè)了的json數(shù)據(jù)

3、不存在、注冊(cè)賬戶(hù)(生成User對(duì)象)調(diào)用保存接口,保存的時(shí)候需要將密碼進(jìn)行MD5+鹽 加密

4、生成token令牌

String token = JWTUtils.createToken(sysUser.getId());

5、存入redis 并返回

這里存入redis是因?yàn)?,注?cè)成功后會(huì)跳轉(zhuǎn)到前端頁(yè)面,前端頁(yè)面會(huì)去redis中找user的信息進(jìn)行對(duì)比,如果存在,顯示登錄,反之登錄失敗。

6、注意加上事務(wù),一旦中間的任何過(guò)程出現(xiàn)問(wèn)題,注冊(cè)的用戶(hù)需要回滾(防止臟數(shù)據(jù))

將生成得token傳遞給前端:

{
    "code": 200,
    "success": true,
    "msg": "success",
    "data": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzQ4NDc0MzQsInVzZXJJZCI6MTQ0NzU1MjU3MDYzMDQzNDgxNywiaWF0IjoxNjMzOTU4NDAxfQ.zn5meG_lUWROuz7TmkUGS0MTjO1-TDQa42uM_-uhXqs"
}

前端調(diào)用該接口,:

http://localhost:8888/users/currentUser

前端將獲得token傳遞給后端接口currentUser,在redis中找到user信息,校驗(yàn)信息,解析數(shù)據(jù),返回用戶(hù)基本信息,前端解析

前端index.js部分代碼段:

login({commit}, user) {
      return new Promise((resolve, reject) => {
        login(user.account, user.password).then(data => {
          if(data.success){
            commit('SET_TOKEN', data.data)
            setToken(data.data)
            resolve()
          }else{
            reject(data.msg)
          }
        }).catch(error => {
          reject(error)
        })
      })

到這里就是簡(jiǎn)單的登錄注冊(cè)的功能,上述內(nèi)容都是部分代碼段,如果有需要學(xué)習(xí)的可以評(píng)論留言。

參考文獻(xiàn):

【碼神之路】博客開(kāi)發(fā);

總結(jié)

到此這篇關(guān)于SpringBoot實(shí)現(xiàn)網(wǎng)站登陸注冊(cè)邏輯的文章就介紹到這了,更多相關(guān)SpringBoot登陸注冊(cè)邏輯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何獨(dú)立使用ribbon實(shí)現(xiàn)業(yè)務(wù)客戶(hù)端負(fù)載均衡

    詳解如何獨(dú)立使用ribbon實(shí)現(xiàn)業(yè)務(wù)客戶(hù)端負(fù)載均衡

    這篇文章主要為大家介紹了詳解如何獨(dú)立使用ribbon實(shí)現(xiàn)業(yè)務(wù)客戶(hù)端負(fù)載均衡,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • java 畫(huà)pdf用itext調(diào)整表格寬度、自定義各個(gè)列寬的方法

    java 畫(huà)pdf用itext調(diào)整表格寬度、自定義各個(gè)列寬的方法

    這篇文章主要介紹了java 畫(huà)pdf用itext調(diào)整表格寬度、自定義各個(gè)列寬的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • java實(shí)現(xiàn)ftp文件上傳下載功能

    java實(shí)現(xiàn)ftp文件上傳下載功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)ftp文件上傳下載功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • java并發(fā)編程專(zhuān)題(二)----如何創(chuàng)建并運(yùn)行java線(xiàn)程

    java并發(fā)編程專(zhuān)題(二)----如何創(chuàng)建并運(yùn)行java線(xiàn)程

    這篇文章主要介紹了java并發(fā)編程如何創(chuàng)建并運(yùn)行java線(xiàn)程,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 詳談Java中的事件監(jiān)聽(tīng)機(jī)制

    詳談Java中的事件監(jiān)聽(tīng)機(jī)制

    下面小編就為大家?guī)?lái)一篇詳談Java中的事件監(jiān)聽(tīng)機(jī)制。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • SpringBoot部署到騰訊云的實(shí)現(xiàn)示例

    SpringBoot部署到騰訊云的實(shí)現(xiàn)示例

    記錄一下自己第一次部署springboot項(xiàng)目,本文主要介紹了SpringBoot部署到騰訊云的實(shí)現(xiàn)示例,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 基于SpringBoot后端導(dǎo)出Excel文件的操作方法

    基于SpringBoot后端導(dǎo)出Excel文件的操作方法

    這篇文章給大家介紹了基于SpringBoot后端導(dǎo)出Excel文件的操作方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Spring如何消除代碼中的if-else/switch-case

    Spring如何消除代碼中的if-else/switch-case

    這篇文章主要給大家介紹了關(guān)于Spring如何消除代碼中if-else/switch-case的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Linux安裝JDK兩種方式詳細(xì)教程(附圖)

    Linux安裝JDK兩種方式詳細(xì)教程(附圖)

    這篇文章主要給大家介紹了關(guān)于Linux安裝JDK兩種方式詳細(xì)教程的相關(guān)資料,Linux的使用相信大家都要用到j(luò)ava吧,在使用java前我們得先安裝jdk以及配置環(huán)境變量等工作,需要的朋友可以參考下
    2023-11-11

最新評(píng)論