全栈工程师成长记

编程重新定义人生

第五周遇到的“API”坑

本周的功能任务之一就是实现手机号码注册用户,流程是用户在注册页面填入手机号码 > 点击发送验证码 > 接收短信验证码 > 输入验证码并完成成注册。

对我而言,这个阶段做短信 API 接口基本就是“史诗级巨坑”,周二当天只完成了图形验证码的功能(防止短信轰炸),对于如何接入短信运营商 API 可以说是毫无头绪,最后这个功能是我们学霸组长熬夜完成的。

在后来的交流中组长告诉我他是综合了我之前发给他的一篇教程、官方文档以及老师在slack上的教程才完成的。

这次的手机号码注册功能实现组合包括:

  1. 使用 phonelib gem 来对手机进行验证,保证手机号码唯一性。
  2. 使用 rotp gem 生成验证码。
  3. 创建 NotificationService 来处理消息提醒
  4. 在 account/user_controller 增加 send_verification_code 方法实现发送验证码。
  5. 修改注册逻辑,必须输入手机验证码才可以注册,增加前端判断,输入验证码 60 秒之后才可再次申请验证码,将判断滑块是否滑动的方法独立出来,加入 before_action。
  6. 新增 verification_codes 表,来存放验证码。
  7. 使用 twilio 短信接口。

进而通过这个 API 巨坑得到的收获是:
1.阅读英文文档的重要性再一次体现;
2.还有就是需要融会贯通的能力。