我只是想给网站加个注册验证码,咋就那么难!

背景

我的个人项目已经上线挺久了,虽然一直流量不咋地,但也陆陆续续有新用户在加入

慢慢的我发现

大部分人都是用的时间注册一下,只留给我一堆数据垃圾就走了

绑定公众号

鉴于大家的防范意识都很强,使用手机号这种具有敏感性的方式可能不是首选,所以考虑与公众号做绑定

这很简单

只需要在公众号后台填入服务器的url

在后端的auth中间件检验一下

js 复制代码
function isFromWechat(ctx) {
  if (cleanPath(ctx.url) === "/微信服务器填写的路由地址" && ctx.method === 'GET') {
    ...
  }
}

当新用户关注时,公众号就会自动向我们的服务器推送一份请求,然后按需处理即可

js 复制代码
router.post("/wx", async (ctx) => {
    ...
});

这种做法我觉得是极好的,既不至于让用户感觉到隐私泄露,又可以给公众号引流,可谓一举两得

后来由于域名没备案导致被微信禁止访问了

不是!我请问呢!!香港服务器备什么案呢!!!

很明显,我最终还是老老实实去做了备案

更逆天的来了

备案后,公众号的消息直接推送不了了。准确来说,是https到不了服务器,而http能到达服务器但是返回的200状态公众号又识别不了

手机号验证

没办法,还是得回到手机号这种方式

这也不难,只需要到服务商购买短信服务然后按照文档接入就可以了

但过程也有点艰辛,或者说莫名其妙!

我当时debugger调试了源码,看了单元测试,都确定我用的没有问题,甚至向官方进行了咨询,但当天怎么都不行

直到第二天,我抱着再试最后一次,不行就再想其他方式的想法又调用了一次,这次竟然通了😂

至于具体的实现,此处就大致过一下

前端大致就这样子,一个手机号输入框,一个验证码获取倒计时

后端的核心是验证码的获取与校验,由于我需要在不同的位置调用,索性就封出来了个class

剩下的就是纯业务逻辑了,比如sts token如何读取和复用以初始化权限等等,这其实并不重要

sls异常

好不容易把手机验证码搞完了,又出现了新的问题,在微信浏览器里,我的请求被报错了

js 复制代码
Failed to load resource: 发生SSL错误,无法建立到该服务器的安全链接

但是其实,我是有部署的,不信你看

总结

所以,凡事还是要自己亲自去做一遍才知道你有多不行!!!

相关推荐
全栈胖叔叔-瓜州1 分钟前
关于llamasharp 大模型多轮对话,模型对话无法终止,或者输出角色标识User:,或者System等角色标识问题。
前端·人工智能
李慕婉学姐3 分钟前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
三七吃山漆9 分钟前
攻防世界——wife_wife
前端·javascript·web安全·网络安全·ctf
m0_7400437310 分钟前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
用户479492835691512 分钟前
面试官问"try-catch影响性能吗",我用数据打脸
前端·javascript·面试
GISer_Jing35 分钟前
前端营销技术实战:数据+AI实战指南
前端·javascript·人工智能
GIS之路1 小时前
使用命令行工具 ogr2ogr 将 CSV 转换为 Shp 数据(二)
前端
嘉琪0011 小时前
Vue3+JS 高级前端面试题
开发语言·前端·javascript
招风的黑耳1 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
Miss_Chenzr1 小时前
Springboot优卖电商系统s7zmj(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端