最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

技術(shù)列表:

  • SpringBoot
  • MySQL
  • redis
  • JWT

用戶登錄邏輯:

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

隨便輸入信息,查看請求后端的地址:

地址:

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

很明顯,前端用戶輸入賬戶,通過post請求傳遞給后端接收:

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

}

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

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

  • 獲取賬戶密碼
  • 判斷賬戶密碼是否為空
  • 密碼加密,采用MD5加密+鹽的操作
  • 通過處理的賬戶密碼(加密)進(jìn)行數(shù)據(jù)庫查詢
String pwd = DigestUtils.md5Hex(password + salt);
//根據(jù)賬號和加密的密碼進(jìn)行數(shù)據(jù)庫的查找
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)簡單的登錄驗(yàn)證功能。

用戶注冊邏輯:

前端請求:

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

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

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

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

4、生成token令牌

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

5、存入redis 并返回

這里存入redis是因?yàn)椋猿晒髸D(zhuǎn)到前端頁面,前端頁面會去redis中找user的信息進(jìn)行對比,如果存在,顯示登錄,反之登錄失敗。

6、注意加上事務(wù),一旦中間的任何過程出現(xiàn)問題,注冊的用戶需要回滾(防止臟數(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ù),返回用戶基本信息,前端解析

前端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)
        })
      })

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

參考文獻(xiàn):

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

總結(jié)

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

相關(guān)文章

  • 詳解如何使用Mybatis的攔截器

    詳解如何使用Mybatis的攔截器

    MyBatis?攔截器是?MyBatis?提供的一個(gè)強(qiáng)大特性,它允許你在?MyBatis?執(zhí)行其核心邏輯的關(guān)鍵節(jié)點(diǎn)插入自定義邏輯,從而改變?MyBatis?的默認(rèn)行為,本文給大家詳細(xì)介紹了如何使用Mybatis的攔截器,需要的朋友可以參考下
    2024-03-03
  • 在MyBatis的XML映射文件中<trim>元素所有場景下的完整使用示例代碼

    在MyBatis的XML映射文件中<trim>元素所有場景下的完整使用示例代碼

    在MyBatis的XML映射文件中,<trim>元素用于動(dòng)態(tài)添加SQL語句的一部分,處理前綴、后綴及多余的逗號或連接符,示例展示了如何在UPDATE、SELECT、INSERT和SQL片段中使用<trim>元素,以實(shí)現(xiàn)動(dòng)態(tài)的SQL構(gòu)建,感興趣的朋友一起看看吧
    2025-01-01
  • Spring?Security放行的接口Knife4j靜態(tài)資源的問題小結(jié)

    Spring?Security放行的接口Knife4j靜態(tài)資源的問題小結(jié)

    這篇文章主要介紹了Spring?Security使用Knife4j靜態(tài)資源的問題小結(jié),項(xiàng)目中使用?Spring?Security?做身份認(rèn)證和授權(quán),使用?Knife4j?做接口調(diào)試,需要?Spring?Security?放行的接口記錄在?RequestMatcherConstant?類中,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • spring boot使用sonarqube來檢查技術(shù)債務(wù)

    spring boot使用sonarqube來檢查技術(shù)債務(wù)

    今天小編就為大家分享一篇關(guān)于spring boot使用sonarqube來檢查技術(shù)債務(wù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java 取模與取余的區(qū)別說明

    java 取模與取余的區(qū)別說明

    這篇文章主要介紹了java 取模與取余的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Java實(shí)現(xiàn)二分法變種的示例代碼

    Java實(shí)現(xiàn)二分法變種的示例代碼

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)二分法變種的示例代碼復(fù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringIOC框架的簡單實(shí)現(xiàn)步驟

    SpringIOC框架的簡單實(shí)現(xiàn)步驟

    這篇文章主要介紹了SpringIOC框架簡單實(shí)現(xiàn)步驟,幫助大家更好的理解和學(xué)習(xí)使用Spring,感興趣的朋友可以了解下
    2021-05-05
  • JAVA中調(diào)用C語言函數(shù)的實(shí)現(xiàn)方式

    JAVA中調(diào)用C語言函數(shù)的實(shí)現(xiàn)方式

    這篇文章主要介紹了JAVA中調(diào)用C語言函數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • springcloud使用profile實(shí)現(xiàn)多環(huán)境配置方式

    springcloud使用profile實(shí)現(xiàn)多環(huán)境配置方式

    這篇文章主要介紹了springcloud使用profile實(shí)現(xiàn)多環(huán)境配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot文件上傳(本地存儲)回顯前端操作方法

    SpringBoot文件上傳(本地存儲)回顯前端操作方法

    這篇文章主要介紹了SpringBoot文件上傳(本地存儲)回顯前端操作方法的相關(guān)資料,文中講解了文件上傳的基本原理,包括前端調(diào)用后端接口上傳文件,后端返回文件路徑給前端,前端通過路徑訪問圖片,需要的朋友可以參考下
    2024-11-11

最新評論

寻乌县| 盘锦市| 阜南县| 万全县| 安龙县| 周至县| 左云县| 通榆县| 苍南县| 闽清县| 新源县| 玛曲县| 白河县| 合川市| 攀枝花市| 邓州市| 石景山区| 竹山县| 花莲市| 桐梓县| 容城县| 绥宁县| 江孜县| 偏关县| 广宁县| 衡南县| 山阴县| 井冈山市| 丹凤县| 航空| 四川省| 麦盖提县| 临清市| 成安县| 桦川县| 阳东县| 阜平县| 来凤县| 错那县| 砚山县| 施甸县|