littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于Egg框架的用户中心集成系统

项目简介

本项目是基于Egg框架开发的用户中心集成系统,借助egg-passport-jyb插件实现与用户中心的交互,具备用户登录、权限管理、菜单获取等功能,实现了单点登录和多系统权限共享,提高了系统的安全性和用户体验。

项目的主要特性和功能

  1. 登录功能:前端采用md5加密密码登录,后端使用egg-passport-jyb插件进行用户验证,验证成功后将用户信息存入session并可重定向到指定页面。
  2. 权限管理:通过用户中心配置用户角色和权限,插件根据这些信息控制用户对系统资源的访问。
  3. 菜单获取:调用插件提供的接口,根据用户角色和权限动态生成并获取用户中心的菜单数据。
  4. 数据库连接:支持单数据库和多数据库连接,可灵活配置运营中心数据库连接。

安装使用步骤

安装

假设用户已经下载了本项目的源码文件,使用以下命令安装依赖: bash $ npm i @node/egg-passport-jyb --save

配置

  1. {app_root}/config/plugin.js中启用插件: js exports.passportJyb = { enable: true, package: 'egg-passport-jyb', };
  2. config/config.default.js中进行详细配置,包括用户中心的配置(如menu_codeclient_idsecret_key等)、数据库连接配置、各种跳转连接配置等。示例如下: js exports.passportJyb = { useMiddleware: false, clients: { mysqlOperate: { app: false, 'userDBClient': null, type: 'mysqlOperate', default: { database: null, connectionLimit: 5, }, agent: false, } }, 'menu_code': null, 'client_id': null, 'secret_key': null, 'selfSystem': { 'notify_uri': '/login', 'redirect_uri': '/', 'getLogin': '/login', 'postlogin': '/login/doLogin', 'getLoginOut': '/login/loginOut', 'noAuth': [] }, 'cmd': { 'getTicketByUserId': '80010001', 'verifyTicket': '80010002', 'getTokenByUsername': '80010003', 'getUserByUseId': '80010004', }, 'menu': {}, 'user': { 'default_pwd': 'jyb123456', } };

使用

登录示例

```javascript const match = await this.ctx.passportLogin({ username: user, password: pwd }, {setLoginState: true})

if(match) { this.ctx.rotateCsrfSecret(); this.ctx.session.userId = match.userId; this.ctx.session.userName = match.userName; this.ctx.body = errCode.LOGIN_SUCCESS; } else { this.ctx.body = errCode.LOGIN_INVALID_PARAM; } ```

菜单获取示例

```javascript const menu = await this.ctx.passportGetMenuData();

await this.ctx.render('layout/layout', { keywords: '加油宝,小贷,管理系统', description: '加油宝小贷管理系统', title: '小贷管理系统', menuList: JSON.stringify(menu), userInfo: JSON.stringify({ userid: this.ctx.session.userId, userName: this.ctx.session.userName }) }); ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】