egg-weapp-auth
为微信小程序提供授权功能
此插件基于 wafer2-node-sdk 授权模块
安装
$ npm i egg-weapp-auth --save
依赖说明
依赖的 egg 版本
egg-weapp-auth 版本 | egg 2.x |
---|---|
2.x | 😁 |
1.x | ❌ |
依赖的插件
- mysql
开启插件
// config/plugin.jsexportsweappAuth = enable: true package: 'egg-weapp-auth';
使用指南
依赖的表
IF EXISTS `csessioninfo`; ( `open_id` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, `uuid` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, `skey` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `last_visit_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `session_key` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL, `user_info` varchar(2048) COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`open_id`), KEY `openid` (`open_id`) USING BTREE, KEY `skey` (`skey`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会话管理用户信息';
配置
// config/config.${env}.jsexportsweappAuth = appId: 'xxxxxxxxxxx' appSecret: 'xxxxxxxxxxxxxxxxxx';
使用方式
// app/router.jsmodule { const router controller = app const authorization = appmiddleware const validation = appmiddleware // user router router}; // app/controller/user.jsconst Controller = Controller async { const ctx = this if ctxstate$wxInfologinState === 1 // loginState 为 1,登录态校验成功 ctxstatedata = ctxstate$wxInfouserinfo else ctxstatecode = -1 } async { const ctx app = this if ctxstate$wxInfologinState ctxstatedata = ctxstate$wxInfouserinfo ctxstatedata'time' = Math } moduleexports = UserController