搭建一个LoginHelper

前言

有些网站会共享一些账号,比如说Apple id,供大家下载一些软件。由于服务商的一些安全设定,每个人登陆的时候都需要进行安全验证,像两步验证这些,常见的就是接短信验证码。这个时候,如果能自动显示验证码,让大家自己去网页上看最新的验证码,就非常方便。

感谢AppleIdLoginHelper提供了这套工具,用Google Voice来接账号的验证码,然后借用Google的Api把验证码实时发布到一个网页上。这里简单记录一下图文操作步骤,大家也可以直接去看AppleIdLoginHelper在Github上的Readme,挺详细的。


MsgHelp

准备

  • 设置下Google账号的一些东西、搭建一个网站、设置一些相应的网站参数。
  • 手里准备:
    一个带有Google Voice的Google账号
    一个Apple账号
    一个VPS机子
    一个域名
  • Apple账号绑定上这个Google Voice号码,作为接码号码

账户设置

  • 使用你的 google voice 账户登录 GCP 控制面板:cloud.google.com
  • 登录后,在左侧侧边栏找到 APIs & Services,点击子项 Oauth consent screen


MsgHelp

  • 点击 创建项目


MsgHelp

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


MsgHelp

  • User TypeExternal


MsgHelp

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


MsgHelp

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


MsgHelp

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


MsgHelp

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


MsgHelp

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


MsgHelp


MsgHelp


MsgHelp

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


MsgHelp

  • 应用类型:Web application


MsgHelp

  • Name 自行取名


MsgHelp

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


MsgHelp

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


MsgHelp

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


MsgHelp


MsgHelp

网站设置

宝塔建站

这里直接用宝塔来部署建站环境,具体不详述

  1. SSH连接 VPS,安装宝塔面板,安装建站环境
  2. 创建网站, 域名等信息自行填写
  • 网站目录加上 /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


MsgHelp

  • 授予 gmail 应用访问权限


MsgHelp

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


MsgHelp

  • 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的登录页面上,依次点击:没有收到验证码 -> 发送验证码至*******(第二个)


MsgHelp

Token过期

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