认证中心可以通过二维码扫描登录的方式进行系统访问,用户需要通过groovy脚本自定义编写如何通过返回的报文获取用户名的功能,以最终实现通过用户名登录系统的功能。
增加配置
在yml文件里面增加如下配置
ac:...customize:qrcode:expiration: 60
配置说明
-
编写groovy脚本
groovy脚本的路径:
war包根目录\WEB-INF\classes\plugins\customizeQrcode.groovy
customizeQrcode.groovy默认内容如下 :::danger 请按照实际返回的用户信息获取用户名的逻辑编写groovy脚本 :::/** * 根据请求报文获得用户名 * @param requestBody * 请求报文 json对象 */ def getUsername(requestBody){ // 写根据请求报文如何获得username的业务逻辑 return "admin"; }说明
入参说明
-
出参说明
出参返回String类型,返回获取的用户名,如果未获取到用户名或获取用户名异常,返回
null:::danger 必须严格按照规范返回内容,否则会导致二维码登录接入功能失效 :::其它说明
groovy脚本的目录必须是
war包根目录\WEB-INF\classes\plugins- groovy脚本名称必须是
customizeQrcode.groovy -
二维码登录
登录地址
{ip}:认证中心的ip地址
- {port}:认证中心的端口
- {context-path}:认证中心的部署包名
登录说明
用户访问上述的登录地址,选择二维码登录,扫描后,根据扫描结果中的uuid的值,调用二维码验证回调接口,登录成功返回true,失败返回false。登录成功后,页面自动跳转至指定页二维码验证回调接口
接口地址
http://{ip}:{port}/{context-path}/checkQrcodeFeedback(对应的参数需要改成具体的实际值)请求方式
POST请求参数
请求报文body体为json对象,其中uuid为必填项请求示例
{ "userName":"admin", "password":"12345678901", "uuid":"c5f9e449-1fbe-41ea-8f66-e31fc42e4dd5" }响应说明
验证成功返回true,失败返回false。
