项目简介
本项目是基于Egg框架开发的用户中心集成系统,借助egg-passport-jyb
插件实现与用户中心的交互,具备用户登录、权限管理、菜单获取等功能,实现了单点登录和多系统权限共享,提高了系统的安全性和用户体验。
项目的主要特性和功能
- 登录功能:前端采用md5加密密码登录,后端使用
egg-passport-jyb
插件进行用户验证,验证成功后将用户信息存入session并可重定向到指定页面。 - 权限管理:通过用户中心配置用户角色和权限,插件根据这些信息控制用户对系统资源的访问。
- 菜单获取:调用插件提供的接口,根据用户角色和权限动态生成并获取用户中心的菜单数据。
- 数据库连接:支持单数据库和多数据库连接,可灵活配置运营中心数据库连接。
安装使用步骤
安装
假设用户已经下载了本项目的源码文件,使用以下命令安装依赖:
bash
$ npm i @node/egg-passport-jyb --save
配置
- 在
{app_root}/config/plugin.js
中启用插件:js exports.passportJyb = { enable: true, package: 'egg-passport-jyb', };
- 在
config/config.default.js
中进行详细配置,包括用户中心的配置(如menu_code
、client_id
、secret_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】