通过函数计算和SmsForwarder短信转发实现自动输入验证码
前言
因为在公司登录各个内部系统,每次都要输入验证码,每次都要打开手机 -> 查看验证码 - > 手动输入,比较繁琐,通过查询发现可以使用 SmsForwarder 来自动转发验证码到自定义的位置,所以做了一个 Alfred 插件和阿里的函数计算来实现验证码自动复制到电脑上并粘贴。
验证码上传
当手机收到验证码后,可以设置自动调用接口,将验证码上传,这里我参考了 webhook 的方式,通过 webhook 将验证码自动 post 到我的函数计算的接口上面,配置方法可以参考文档,配置效果如下:
短信通道
因为短信接收的接口开放在公网,为了安全起见,我添加了一个 token 参数校验,如果 token 不对会返回 404,防止敏感信息泄露。
短信转发规则
这里我是通过正则来匹配短信内容的,将正则匹配的短信通过上面的短信通道发送出去。
验证码获取
将验证码上传后,就可以通过另一个接口来获取了,我使用 bottle 起了一个 web 服务器,通过函数计算来执行,代码如下:
1 | from bottle import request, run, route, abort |
声明一个变量,用来保存验证码,通过接口获取到验证码后,保存到这个变量中,然后请求另一个接口,返回这个变量的值。代码很简单,没什么可说的。
还有函数计算一段时间不访问就会清除当前运行的实例,这个时候重新访问的话 msg 的值就是空的,也能保证安全,验证码信息不落库,不保存,只放到内存中,在一段时间后自动销毁。
获取命令
函数计算测试成功后,通过以下命令就可以获取到云端的验证码了:
1 | curl -s 'https://xxx.cn/get_msg?token=token' | grep -E -o '\d{6}' |
效果如下:
使用 Alfred 自动输入验证码
如果用使用过 Alfred 的小伙伴应该知道,Alfred 可以通过自定义的 Workflows 来执行自定义的指令,并且可以和剪切板交互,废话不多说,上代码:
整体流程就三步,keyword 启动后,执行 bash 脚本,然后将结果复制到剪切板
脚本已经粘贴在上面了,可以直接复用。
最后一步复制到剪切板的操作可以勾选这两个选项,勾选后会自动粘贴到当前可编辑的位置:
效果图
最后一步,来效果展示:
总结
最后,附上代码仓库:
所有代码可以在下面的仓库找到
https://github.com/libra146/Alfred-workflows/tree/main/forward-sms
本文章首发于个人博客 LLLibra146’s blog
本文作者:LLLibra146
更多文章请关注:
版权声明:本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!
本文链接:
https://blog.d77.xyz/archives/5f96b034.html