搜索看看
功能说明
/ 如何设置短信登录WGCLOUD,如何设置2FA登录方式
提示:需要升级到v3.6.3或以上版本。此功能默认没有启用,如果需要使用验证码登录,需要做一个简单的配置就可以了
这种登录方式分两步验证,(1)输入登录账号和密码,提交,验证通过,(2)第二步发送验证码,验证通过,登录系统成功
从v3.6.3版本开始,wgcloud支持使用短信登录系统,也支持使用2FA方式登录
那么如何使用呢,如下
1、在文件server/config/application.yml里添加如下配置项
如下所示,添加
accountPhone
和
sendPhoneCodeScript
如果我们不想使用验证码登录系统了,只需要把
accountPhone
和
sendPhoneCodeScript
注释掉或者删除即可,然后重启下server程序就好了
注意每个配置项冒号后保留一个英文空格
注意左对齐方式
#管理员登陆账号 account: admin #管理员登陆账号的密码 accountPwd: 111111 #管理员手机号或者ID,登录时候接收验证码使用 accountPhone: 15812345678 #登录时候发送手机验证码的脚本绝对路径,shell脚本或者python脚本都可以,bat脚本也可以,powershell也可以 sendPhoneCodeScript: /wgcloud/sendPhoneCode.sh
/wgcloud/sendPhoneCode.sh
内容如下,系统会给脚本传输两个参数,第1个是接收手机号,第2个是验证码
#!/bin/sh #接受手机号 phone=$1 #接受验证码,6位数,有效期10分钟 code=$2 currTime=$(date +"%Y-%m-%d %T") echo "$currTime warn content is : $phone---------$code" >> ./warn.log #下面是发送短信的逻辑,到时候改成自己的实现脚本 #webhook是短信接口 webhook='http://xxxxxxxxxxxx' account="短信账号" password="短信密码" #我们把这些参数拼接成一个完整的url urlStr="$webhook?Account=$account&Password=$password&Phone=$phone&Code=$code" echo "$currTime warn content is : $urlStr" >> ./warn.log curl -X POST $urlStr -H 'Content-Type: multipart/form-data'
如上是一个shell脚本示例,我们可以在这里书写自己实际的验证码发送逻辑,比如可以发送短信,也可以发送给其他APP实现2FA登录系统
比如我们可以把验证码发给钉钉群或者企业微信,来实现2FA登录WGCLOUD,
参考告警脚本说明
我们可以仿照如上脚本,按照需要改造为py脚本或者bat脚本,在页面最下面有个python脚本示例参考
如下是一个python脚本示例发送短信
import sys import datetime curr_time = datetime.datetime.now() time_str = datetime.datetime.strftime(curr_time,'%Y-%m-%d %H:%M:%S') #接受手机号 phone = sys.argv[1] #接受验证码,6位数,有效期10分钟 code = sys.argv[2] warnContent=f"{time_str}:接受手机号------{phone}------接受验证码:{code}\n" print(warnContent) #我们在这里填充自己实际的逻辑脚本 f = open("pyWarn.log", "a") f.write(warnContent) f.close()
2、如果您添加了成员账号的话,也需要给每个账号添加一个登录手机号,如下图
3、修改完后
重启server程序即可
然后我们登录系统,首先输入登录账号密码,验证通过后,然后就可以看到发送验证码的页面了,如下图