若依框架開啟注冊功能全流程指南

在若依(RuoYi)框架中,用戶注冊功能并非默認開啟,需要通過后端配置、前端調整以及必要的角色分配設置來實現。本文將詳細介紹開啟注冊功能的完整步驟,幫助開發者快速完成配置。

一、后端配置:開啟注冊功能開關

若依框架通過系統配置表(sys_config)控制注冊功能的啟用狀態,需通過以下步驟修改配置:

1. 理解注冊功能的后端控制邏輯

后端注冊接口的核心邏輯位于?SysRegisterController?中,關鍵代碼如下:

@PostMapping("/register")
public AjaxResult register(@RequestBody RegisterBody user) {// 檢查系統是否開啟注冊功能if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) {return error("當前系統沒有開啟注冊功能!");}String msg = registerService.register(user);return StringUtils.isEmpty(msg) ? success() : error(msg);
}

?

代碼中通過?configService.selectConfigByKey("sys.account.registerUser")?讀取配置,若值為?true?則允許注冊,否則返回錯誤提示。

2. 修改系統配置表(sys_config

配置項存儲在數據庫的?sys_config?表中,需將?“賬號自助 - 是否開啟用戶注冊功能”?對應的配置值改為?true

  • 找到?sys_config?表中?config_key?為?sys.account.registerUser?的記錄(通常為表中第 5 條記錄);
  • 將該記錄的?config_value?字段修改為?true(表示開啟注冊功能);
  • 若該配置項不存在,可手動插入一條:config_name?為 “賬號自助 - 是否開啟用戶注冊功能”,config_key?為?sys.account.registerUserconfig_value?為?trueconfig_type?為?Y

3. 驗證后端配置

修改后,后端會通過?sysConfigMapper.xml?映射文件讀取配置,確保?sysConfigMapper.xml?中包含正確的配置表映射:

<!-- sysConfigMapper.xml 中關鍵配置 -->
<resultMap type="SysConfig" id="SysConfigResult"><id property="configId" column="config_id"/><result property="configKey" column="config_key"/><result property="configValue" column="config_value"/><!-- 其他字段映射 -->
</resultMap><sql id="selectConfigVo">select config_id, config_key, config_value from sys_config
</sql>

?

確保映射文件能正確讀取?config_key?和?config_value?字段,避免配置讀取失敗。

二、前端調整:顯示注冊入口

前端需修改登錄頁面配置,使注冊入口可見:

1. 找到前端配置文件

前端登錄頁面的配置位于?src/views/login.vue?中,該文件控制登錄頁的顯示邏輯,包括注冊開關。

2. 開啟注冊開關

在?login.vue?的?data()?方法中,將?register?屬性設置為?true

data() {return {// 其他配置...captchaOnOff: true, // 驗證碼開關register: true, // 注冊開關:設為true顯示注冊入口redirect: undefined};
}

?

修改后,登錄頁面將顯示 “注冊” 按鈕,用戶可點擊進入注冊流程。

三、注冊時自動分配角色(可選)

默認情況下,新注冊用戶可能沒有任何角色權限,需手動或自動分配角色。若需注冊時自動賦予角色,需通過以下步驟實現:

1. 理解用戶與角色的關聯關系

若依框架基于 RBAC(Role-Based Access Control)權限模型設計,用戶與角色的關聯通過?sys_user_role?表維護(多對多關系)。因此,為新用戶分配角色需向該表插入關聯記錄。

2. 調用批量新增角色關聯的方法

若依框架已封裝好批量新增用戶角色的方法,位于?SysUserRoleMapper?中:

/*** 批量新增用戶角色信息* @param userRoleList 用戶角色列表* @return 結果*/
public int batchUserRole(List<SysUserRole> userRoleList);

?

對應的 XML 實現(SysUserRoleMapper.xml):

<insert id="batchUserRole">insert into sys_user_role(user_id, role_id) values <foreach item="item" index="index" collection="list" separator=",">(#{item.userId}, #{item.roleId})</foreach>
</insert>

3. 在注冊流程中調用角色分配方法

在用戶注冊成功后(即?registerService.register(user)?方法內部),可添加角色分配邏輯:

// 注冊用戶成功后,獲取新用戶ID
Long userId = ...; 
// 準備角色關聯列表(例如默認賦予“普通用戶”角色,roleId=2)
List<SysUserRole> userRoles = new ArrayList<>();
userRoles.add(new SysUserRole(userId, 2L)); 
// 調用批量新增方法
sysUserRoleMapper.batchUserRole(userRoles);

通過上述代碼,新注冊用戶將自動關聯指定角色,獲得對應權限。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89721.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32單片機_3

第十章IIC通信協議規定, 起始之后主機必須先發送一個字節: 從機地址讀寫位, 進行尋址然后接收一下應答位, 然后再發送一個字節, 寫入從機寄存器地址 之后就可以進行數據的收發了注意: 在 主機的接收應答的時候, 立刻釋放SDA 然后這時候從機會立刻做出反應, 即拉低SDA, 也就是置…

SpringAI_Chat模型_DeepSeek模型--基礎對話

一、前言 Spring AI 提供跨 AI 供應商&#xff08;如 OpenAI、Hugging Face 等&#xff09;的一致性 API, 通過分裝的ChatModel或ChatClient即可輕松調動LLM進行流式或非流式對話。 本專欄主要圍繞著通過OpenAI方式調用各種大語言模型展開學習&#xff08;因為95%以上模型都…

數據結構:字符串(Strings)

目錄 第一性問題&#xff1a;計算機如何表示文字&#xff1f; ASCII&#xff1a;最早的字符編碼標準&#xff08;美國人寫的&#xff09; Unicode&#xff1a;解決全球語言的編碼方案 字符&#xff08;Character&#xff09; ?編輯 為什么字符常量必須加上單引號 &#…

【vue-5】Vue 3 中的 v-model:雙向數據綁定的全面指南

在 Vue 開發中&#xff0c;v-model 是實現表單輸入和應用狀態之間雙向綁定的關鍵指令。Vue 3 對 v-model 進行了重大改進&#xff0c;使其更加靈活和強大。本文將深入探討 Vue 3 中 v-model 的工作原理、新特性以及最佳實踐。 1. v-model 基礎 1.1 什么是 v-model v-model 是 V…

結合自身,制定一套明確的 Web3 學習路線和技術棧建議

目錄 ? 一、結合自身&#xff0c;明確方向和目的 ? 二、技術路線和建議 &#x1f9ed; 技術路線圖&#xff08;按階段劃分&#xff09; 第一階段&#xff1a;鞏固 Web3 基礎&#xff08;1-2 周&#xff09; 第二階段&#xff1a;NFT 平臺開發實戰&#xff08;4-6 周&…

SPARKLE:深度剖析強化學習如何提升語言模型推理能力

摘要&#xff1a;強化學習&#xff08;Reinforcement Learning&#xff0c;RL&#xff09;已經成為賦予語言模型高級推理能力的主導范式。盡管基于 RL 的訓練方法&#xff08;例如 GRPO&#xff09;已經展示了顯著的經驗性收益&#xff0c;但對其優勢的細致理解仍然不足。為了填…

【Linux服務器】-MySQL數據庫參數調優

一、基礎配置 [mysqld] # 聲明以下配置屬于MySQL服務器&#xff08;mysqld&#xff09;[mysqld]&#xff1a;配置文件的模塊標識&#xff0c;表示這是 MySQL 服務器的配置段。 二、路徑與基礎設置 datadir/var/lib/mysql socket/var/lib/mysql/mysql.sock pid-file/var/run/mys…

sqli-labs靶場通關筆記:第32-33關 寬字節注入

第32關 寬字節注入查看一下本關的源代碼&#xff1a;function check_addslashes($string) // 定義一個用于過濾特殊字符的函數&#xff0c;目的是轉義可能用于注入的特殊符號 {$string preg_replace(/. preg_quote(\\) ./, "\\\\\\", $string); // 轉義…

基于Eureka和restTemple的負載均衡

在微服務架構中&#xff0c;基于 Eureka&#xff08;服務注冊中心&#xff09;和 RestTemplate&#xff08;HTTP 客戶端&#xff09;實現負載均衡是常見的方案&#xff0c;核心是通過 Eureka 獲取服務實例列表&#xff0c;再結合負載均衡策略選擇具體服務實例進行調用。以下是詳…

子線程不能直接 new Handler(),而主線程可以

在 Android 中&#xff0c;子線程不能直接 new Handler()&#xff0c;而主線程可以&#xff0c;原因在于 Looper 機制。下面詳細解釋&#xff1a;1. 為什么主線程可以直接 new Handler()&#xff1f; 主線程&#xff08;UI 線程&#xff09;在啟動時&#xff0c;系統會自動調用…

Android無需授權直接訪問Android/data目錄漏洞

從android11開始&#xff0c;訪問/sdcard/Android/data目錄需要URI授權&#xff0c;而從更高的版本開始甚至URI權限也被收回&#xff0c;返回“無法使用此文件夾”的提示&#xff0c;這里提供一種方法&#xff0c;可以越權強制訪問data目錄&#xff0c;當然也包括obb、media等目…

本地部署 Kimi K2 全指南(llama.cpp、vLLM、Docker 三法)

Kimi K2 是 Moonshot AI 于2025年7月11日發布的高性能多專家語言模型&#xff08;MoE&#xff09;&#xff0c;支持最大 128K 上下文&#xff0c;激活參數規模為 32B&#xff0c;具備極強的推理、代碼生成與多輪對話能力。自從其權重以多種格式開源以來&#xff0c;許多開發者希…

使用python的pillow模塊將圖片轉化為灰度圖和相關的操作

使用python的pillow模塊可以將圖片轉化為灰度圖&#xff0c; 可以獲取灰度圖的特定點值&#xff0c;區域值&#xff0c; 修改值并保存到圖片 圖片轉換為灰度圖 from PIL import Image# 打開圖片 image Image.open("d://python//2//1.jpg")gray_image image.convert…

【網絡安全】大型語言模型(LLMs)及其應用的紅隊演練指南

未經許可,不得轉載。 文章目錄 什么是紅隊演練? 為什么 RAI 紅隊演練是一項重要實踐? 如何開展和規劃 LLM 的紅隊演練 1.測試前的準備 規劃:由誰負責測試 規劃:測試內容 規劃:測試方式 規劃:數據記錄方式 2.測試過程中 3.每輪測試后 報告數據 區分“識別”與“測量” 本…

ROS2安裝ros-humble-usb-cam 404錯誤導致失敗的解決方法

ROS2安裝ros-humble-usb-cam遇到404錯誤導致安裝失敗&#xff0c;如圖&#xff1a;解決方法&#xff1a; 備份 sources.list sudo cp /etc/apt/sources.list.d/ros2.list /etc/apt/sources.list.d/ros2.list.bak替換為清華源 sudo sed -i s|http://packages.ros.org/ros2/ubunt…

OllyDbg技巧學習

1 嘗試在反匯編代碼中找到一個函數的二進制代碼 有的時候需要一個函數的二進制代碼&#xff0c;注入到另外的一些地方&#xff1b;以此程序為示例&#xff0c; 八叉樹的C實現與原理解析-CSDN博客 Ollydbg打開可執行文件&#xff0c;我想先找到此函數的二進制代碼體&#xff0…

數據分析智能體:讓AI成為你的數據科學家

數據分析智能體&#xff1a;讓AI成為你的數據科學家 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者。 ? 用代碼丈量世界&#xff0c…

K8s與Helm實戰:從入門到精通

Kubernetes 簡介 Kubernetes(簡稱 K8s)是一個開源的容器編排平臺,用于自動化部署、擴展和管理容器化應用。最初由 Google 設計并捐贈給云原生計算基金會(CNCF),現已成為容器編排領域的事實標準。 核心功能 自動化容器部署:支持聲明式配置和自動化部署,減少人工干預。…

根據ARM手冊,分析ARM架構中,原子操作的軟硬件實現的底層原理

目錄 1.問題背景&#xff1a; 2.原子操作 2.1 硬件操作 2.1.1 LDREX/LDXR指令 2.1.2 STREX/STXR指令 2.2 軟件操作 2.3 軟件硬件操作的各性能對比 3.總結 1.問題背景&#xff1a; 我們知道&#xff0c;RTOS的任務調度算法是搶占式優先級調度算法。 既然是搶占了&…

iOS 抓包工具選擇與配置指南 從零基礎到高效調試的完整流程

iOS 抓包&#xff1a;復雜網絡調試的必要技能 隨著移動端應用越來越依賴網絡交互&#xff0c;iOS 抓包作為核心調試工具之一&#xff0c;變得尤為重要。無論是調試 App 與后端的接口通信、排查 HTTPS 請求加密問題&#xff0c;還是定位網絡連接超時、請求異常&#xff0c;抓包都…