搭建一个LoginHelper
前言
有些网站会共享一些账号,比如说Apple id,供大家下载一些软件。由于服务商的一些安全设定,每个人登陆的时候都需要进行安全验证,像两步验证这些,常见的就是接短信验证码。这个时候,如果能自动显示验证码,让大家自己去网页上看最新的验证码,就非常方便。
感谢AppleIdLoginHelper提供了这套工具,用Google Voice来接账号的验证码,然后借用Google的Api把验证码实时发布到一个网页上。这里简单记录一下图文操作步骤,大家也可以直接去看AppleIdLoginHelper在Github上的Readme,挺详细的。

准备
- 设置下Google账号的一些东西、搭建一个网站、设置一些相应的网站参数。
- 手里准备:
一个带有Google Voice的Google账号
一个Apple账号
一个VPS机子
一个域名 - Apple账号绑定上这个Google Voice号码,作为接码号码
账户设置
- 使用你的
google voice
账户登录GCP
控制面板:cloud.google.com - 登录后,在左侧侧边栏找到 APIs & Services,点击子项 Oauth consent screen

- 点击 创建项目

- 项目名称 Project name 和 位置 Location,然后点击创建

- User Type 选 External

- 应用名称 App name 自行取名
- 用户支持邮箱 填Google的邮箱账号

- 已获授权的网域 填你的域名,这里只需要填写根域名
- 如果你的域名是
my.domain.com
这种子域名,填domain.com
就行

- 开发者联系信息 可以填Google的邮箱账号

- Scopes 范围页面无需设置,直接点击 保存并继续

- 添加测试用户,输入你的
google voice
账户邮箱



- 左侧菜单栏,点击凭据 Credentials -> 创建凭据 ->
oauth

- 应用类型:Web application

- Name 自行取名

- 授权js来源 填写你的域名
- 授权重定向url 填写你的域名,并在末尾加上
/callback
- 这里,如果你的域名是
my.domain.com
这种子域名,那就填my.domain.com
,和上面的填法不一样!

- 等待创建完成,然后在弹出的对话框中,点击下载
json
文件 - 将文件重命名为
credentials.json
后上传到网站根目录

- 顶部搜索框搜索
gmail api
- 点击第一个搜索结果,点击 启用


网站设置
宝塔建站
这里直接用宝塔来部署建站环境,具体不详述
- SSH连接 VPS,安装宝塔面板,安装建站环境
- 创建网站, 域名等信息自行填写
- 网站目录加上
/public
- 伪静态选择
thinkphp
- 确保这些函数没有被禁用:
putenv
proc_open
proc_get_status
- 移除防跨站
下载源码
# sms.domain.com 更换成你的域名网址
cd /www/wwwroot/sms.domain.com
git clone https://github.com/AppleIdLoginHelper/LoginHelper
composer install
chmod 755 -R *
chown www -R *
编辑.env
- 可以自行复制一个,进行编辑
cp .example.env .env
vim .env
# 建议关闭 debug 模式,确保安全,即关闭thinkphp调试模式
# 同时,这样主页就不会显示一些运行信息
APP_DEBUG = false
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = 你的数据库名称
USERNAME = 数据库用户
PASSWORD = 数据库用户密码
HOSTPORT = 3306
CHARSET = utf8
DEBUG = false
[OTHER]
# AUTO_REFRESH 网页自动刷新开关,开启需改为 true
# REFRESH_INTERVAL 如果开启网页自动刷新,则每隔几秒刷新一次
AUTO_REFRESH = true
REFRESH_INTERVAL = 5
BLOCK_WEBSITE_LOGIN = false
BLOCK_ICLOUD_LOGIN = false
[LANG]
default_lang = zh-cn
导入数据库
- 自行导入数据库文件
/database/verify.sql
编辑Index.php
cd app/controller
vim Index.php
// 开了 oauth2.0 的 gmail 账户 也是接收其他 gmail 转发邮件的收件箱
$email_address = '';
// '你买的有google voice号的gmail账户' => '(对应下载的软件名称或其他备注) 绑定这个gv号的apple id账户',
$email_correspondence = [
'' => '',
];
案例
- $email_address这里,
写voice的邮箱 - $email_correspondence,这里实际上是用来显示的,可以参照下面的来写
$email_address = '<google_voice_1>';
$email_correspondence = [
'<google_voice_1>' => '(app_a) <apple_id_a>',
];
$email_address = 'google@gmail.com';
$email_correspondence = [
'google@gmail.com' => '(Apple ID) apple@icloud.com',
];
启动程序
- SSH在网站目录下执行
# sms.domain.com 更换成你的域名网址
cd /www/wwwroot/sms.domain.com
php quickstart.php
- 出现一个链接,复制这个链接,在浏览器中粘贴访问
- 网页上,提示 此应用未经 Google 验证,点继续 Continue

- 授予
gmail
应用访问权限

- 会重定向到你的网站,复制这串代码,到SSH粘贴

- SSH返回类似于下面这些,就行了
Labels:
- CHAT
- SENT
- INBOX
... ...(省略)
... ...(省略)
- CATEGORY_SOCIAL
- STARRED
- UNREAD
- 访问 https://sms.domain.com/test 即可。
重启程序
- 删除网站根目录下的
token.json
- 按照启动程序的步骤来操作
其他说明
更改主页
- 主页在 app/view/index.html
- 更改它就行
消息数量
- 消息数量显示个数,在app/controller/Index
# 更改这个值就行
$msg = MailContent::limit(5)
故障排查
没收到验证码
- 这种情况是有人登录了账号,没有退出,验证码会发到他的手机
- 那么,则在iPhone的登录页面上,依次点击:没有收到验证码 -> 发送验证码至*******(第二个)

Token过期
- 删除网站根目录下的
token.json
- 然后,SSH在在网站目录下执行,等等等等继续相同的操作
php quickstart.php
标题:搭建一个LoginHelper
链接:http://www.outblue.cc/286
来源:OutBlue Blog
说明:文章版权本站所有,欢迎转载分享,望能备注出处
链接:http://www.outblue.cc/286
来源:OutBlue Blog
说明:文章版权本站所有,欢迎转载分享,望能备注出处
THE END
二维码
文章目录
关闭
共有 0 条评论