网页版 Google 身份验证器
Gauth 是什么?
使用 Google 身份验证器的你是否有时候担心手机丢失了,两步验证码找不回来?
有时候忘了带手机,不想拿手机出来,但是又需要查看自己的两步验证码?
使用 Gauth 即可解决你的问题!
标题党不好做啊
这个程序的目的就是解决不想拿出手机,又想看自己的两步验证码的问题。
鸣谢:https://github.com/gbraadnl/gauth
使用教程
必要准备:
一台 VPS
一个域名(必须)
python3
前置准备:
首先 clone 代码
1 | git clone https://github.com/WhyFear/MyGAuth |
安装依赖包
1 | cd MyGAuth |
将.env_template 名称改为.env
1 | mv .env_template .env |
申请 reCAPTCHA keys
前往官网申请 :
- 标签随便填写,可以写一个方便记忆的。
- reCAPTCHA 类型选择 V2,同时勾选 “进行人机身份验证” 复选框。
- 域名填写根域名,不要填入子域名,同时添加一个本地地址,方便后期在本地测试。
将上面的密钥填写到.env 文件的 RECAPTCHA_PUBLIC_KEY 一项中,下面的密钥填写到 RECAPTCHA_PRIVATE_KEY 一项中。注意不要填反了。
其他.env 项的填写
APP_SECRET_KEY 可以随便填写,建议填写一个复杂的。这个不用记忆,只是为了加盐保证安全。
USER_ID 填写你的登录时用户名,比如 pakro
USERNAME 目前还没有作用,可以填写和 USER_ID 一样
PASSWORD 密码,明文即可。
gauth 导出 key
如果你使用的身份验证器可以导出 key 那么可以直接跳过到下一步,如果没有的话,请跟着我做。
ios 设备
不好意思,目前除了越狱没有办法将你的 key 导出。可以使用 app 的导出功能,然后使用安卓手机扫码导入,然后跟着安卓的操作走。
安卓设备
首先确保已经开启了开发者模式,并打开了 USB 调试
adb shell 连接手机 ,输入:
1 | adb pull /data/data/com.google.android.apps.authenticator2/databases/databases |
linux 设备
1 | sqlite3 ./databases "select * from accounts" > google_authenticator_backup.txt |
数据格式如下:
1 | 1|Google:me@gmail.com|XXXXXXXXXXXXXXXXXXXXXXXX|0|0|0|| |
那一大堆的 X 就是我们需要的 key 了。
Windows 设备
下载 DB Browser for SQLite 或者可以使用其他能够查看 sqlite 数据库的软件,打开 databases 文件即可。
MyGAuth key 的导入
打开 static/js/gauth.js 文件,转到 132 行
按照 addAccount (‘Google’, ‘XXXXXXX’); 的格式,一行一行添加内容。
测试
此时可以在本地测试或者直接服务器启动服务看看工作是否正常了。
1 | python3 app.py |
打开 http://localhost:5000/login
部署
首先获取几个信息
1 | # 在MyGAuth文件夹中输入如下命令 |
1 | # 输入如下命令找到gunicorn安装位置 |
修改下面的两个内容:/var/www/gauth/ 、/usr/local/python3/bin/gunicorn、48224
48224 可以改为自己喜欢的端口,如果没有前置代理,可以设置为 80。但是我不建议这样做。
1 | nano /etc/systemd/system/gauth.service |
保存退出
1 | systemctl daemon-reload |
caddy 设置
如果你使用 nginx 可以参考其他文章的配置方法,下面给出我 caddy1 的配置方法
1 | https://your.website.name { |
到此,设置完毕,可以开始使用了。