目录
一、写在前面
本篇做记录使用,欢迎相互学习。因为做的项目有用户和管理员两种身份,所以想给项目加入登录注册功能,采用手机短信验证码进行注册。用户和管理员的账号和密码采用数据库保存(这可能不是一种安全的保存方式,但作学习练手的一个方式),用手机号码或账号登录。
本文的短信验证码通过接入第三方平台实现。因为短信验证这个受到很多管控,像比较大的短信收发平台阿里云、聚合数据等,认证不好通过,拿不到签名,借鉴了网上资料,最终采用榛子云短信用作个人使用,至少能发送了。另外,发送一条好像是几分钱,系统默认会送一条。
二、步骤
1、注册和登录
注册链接:sms_developer.zhenzikj.com/zhenzisms_user/register.html
登录链接:https://sms_developer.zhenzikj.com/zhenzisms_user/login.html
然后就是这个界面:
第一次登录进来,默认会有模板,可以不用更改,更改后会进入审核。
2、代码调用
这里先放榛子云短信的使用文档链接:榛子-云短信文档中写可以用api和sdk两种方式调用,其实原理差不多。我使用的python语言,采用python-sdk实现。先在界面中找到三个参数:(圈的这三个)
然后打开文档http://smsow.zhenzikj.com/doc/sdk.html下载sdk,可以看到支持很多语言,调用方式支持很多。本文以python语言为例,我下载的python-sdk。(如下图)
然后将sdk放在和调用的.py文件同级目录,不然导不了包
代码如下:(注意将圈起来的参数对应添加到你的代码)
import zhenzismsclient as smsclient # 导入sdk包
import random #我使用的随机数生成验证码,你可以使用其他方式
apiUrl = 'https://sms_developer.zhenzikj.com' # 个人使用的apiUrl地址(这个是固定的,文档中有写),企业是不同的
appId = 'xxxx' # 你自己的appId
appSecret = 'xxxxxxxx' # 你自己的appSecret
client = smsclient.ZhenziSmsClient(apiUrl, appId, appSecret)
# 生成验证码
code = ''
for num in range(1, 7): #你可以自己设置验证码的位数
code = code + str(random.randint(0, 9))
# 设置一分钟有效
time = '1'
# number是你要发送的手机号码,templateId是你的模板id,templateParams是你的模板参数,对应你的模板内容{1}{2}
params = {'number': 'xxxxxxx', 'templateId': 'xxxxx', 'templateParams': [code, time]}
result = client.send(params)
print(result)
运行结果:
3、api方式调用
你也可以用api进行调用(我用的apipost工具进行测试,如下图)