阿里通信[短信验证码]上线实战流程分享

简介: 1、阿里云短信服务官方文档使用指引:2、登录阿里通信 1)登录链接:https://www.aliyun.com/product/sms 2)可以使用淘宝账号登录 3)登录成功后,进入到这个界面:https://dysms.console.aliyun.com/dysms.htm#/overview3、阿里通信-短信验证码使用1)获取 AccessKey 和 ACCESS_KEY_SECRET:2)新建签名及模板签名及模板审核通过后即可以使用了。

1、阿里云短信服务官方文档使用指引

2、登录阿里通信
 1)登录链接:https://www.aliyun.com/product/sms
 2)可以使用淘宝账号登录
 3)登录成功后,进入到这个界面:https://dysms.console.aliyun.com/dysms.htm#/overview
_1

3、阿里通信-短信验证码使用
1)获取 AccessKey 和 ACCESS_KEY_SECRET:

_2
2)新建签名及模板
签名及模板审核通过后即可以使用了。

4、python 发送短信验证码
1)下载阿里短信服务下的SDK(python):https://help.aliyun.com/document_detail/112147.html?spm=a2c4g.11186623.6.631.673f5f30ZSc6vT
_3

在项目的虚拟环境中,执行下述命令,安装阿里云SDK核心库:
python 2.x 安装:

pip install aliyun-python-sdk-core
 python 3.x 安装:

pip install aliyun-python-sdk-core-v3
2)使用 OpenAPI Explorer 来生成相关API的Demo并应用在我们自己的项目中
_4

使用 python SDK 的示例指导链接:https://help.aliyun.com/document_detail/53090.html

短信API demo 介绍:

QuerySendDetails:调用QuerySendDetails接口查看短信发送记录和发送状态 , 文档链接:https://help.aliyun.com/document_detail/102352.html

SendSms:发送短信 , 文档链接:https://help.aliyun.com/document_detail/101414.html

SendBatchSms:批量发送短信, 文档链接:https://help.aliyun.com/document_detail/102364.html

3)SendSms 相关参数介绍
请求参数:
_5

返回参数:
_6
返回结果 json 格式:
{

"Message":"OK",
"RequestId":"2184201F-BFB3-446B-B1F2-C746B7BF0657",
"BizId":"197703245997295588^0",
"Code":"OK"

}
错误码 error code:https://error-center.aliyun.com/status/product/Dysmsapi
4)SendSms API 生成

进入OpenAPI Explorer :https://api.aliyun.com/?spm=a2c4g.11186623.2.15.506959adEnxtsy#/?product=Dysmsapi&api=QuerySendDetails

使用:
_7
API 调试生成 python 代码:

!/usr/bin/env python

coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
client = AcsClient('', '', 'default')

request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')

request.add_query_param('PhoneNumbers', "13*")
request.add_query_param('SignName', "小饭桌网站")
request.add_query_param('TemplateCode', "SMS_16")
request.add_query_param('TemplateParam', "{'code':'123456'}")

response = client.do_action(request)

python2: print(response)

print(str(response, encoding = 'utf-8'))
我们只需要复制上述代码,稍作改动,将code变成我们需要的验证码就可以了。

具体使用:

新建 random_code.py 文件,代码如下:
import random

def generate_code():

"""生成四位数的验证码"""
seeds = "1234567890"
random_str = []
for i in range(4):
    random_str.append(random.choice(seeds))
return "".join(random_str)

新建 aliyunsdk.py 文件,用于发送短信(可直接拿去使用),代码如下:
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest

from utils.random_code import generate_code

def aliyun_send_sms():

"""阿里云发送短信"""
client = AcsClient('******', '***********', 'default')  # <accessKeyId> 、<accessSecret>

request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')

code = generate_code()   # 生成四位数的验证码

request.add_query_param('PhoneNumbers', "13*******")
request.add_query_param('SignName', "小饭桌网站")
request.add_query_param('TemplateCode', "SMS_********")
request.add_query_param('TemplateParam', json.dumps({'code': code}))  # 以json 格式传递code参数

response = client.do_action(request)  # 发送短信

response = str(response, encoding='utf-8')  # 返回的response 为 <class 'bytes'> 类型,将其转换成str字符串类型
response = json.loads(response)  # 再通过json.loads,将str类型的 response 转换成dict 格式
# print(response)     # response:{'Message': 'OK', 'RequestId': 'F07A40C3-539C-453B-BE52-4B60FF8DF58E', 'BizId': '431121158876223912^0', 'Code': 'OK'}
# print(response['Code'])  # 获取 Code 值
return code, response['Code']
相关文章
|
机器学习/深度学习 人工智能 Java
验证码破解全流程实战
验证码破解全流程实战
443 0
验证码破解全流程实战
|
2月前
|
存储 JSON 前端开发
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
本文介绍了在Node.js中使用token实现前端验证码和登录功能的详细流程,包括生成验证码、账号密码验证以及token验证和过期处理。
49 0
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
|
6月前
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
65040 5
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
|
6月前
|
前端开发 安全 Java
SpringBoot 实现登录验证码(附集成SpringSecurity)
SpringBoot 实现登录验证码(附集成SpringSecurity)
405 0
|
3月前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
1月前
|
Java
Java 登录输入的验证码
Java 登录输入的验证码
26 1
|
1月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
76 2
|
3月前
|
资源调度 JavaScript API
nest.js + sms 实现短信验证码登录
本文介绍了在Nest.js框架中集成短信验证码登录的实现方案,详细阐述了使用阿里云短信服务的配置流程、资质申请、短信模板设置,并提供了API调用示例和工程代码的运行步骤。
nest.js + sms 实现短信验证码登录
|
3月前
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
【Azure 环境】中国区Azure B2C 是否支持手机验证码登录呢?
|
6月前
|
缓存 算法 NoSQL
短信验证码登录接口,如何防止恶意攻击
该文讨论了移动应用中常见的手机短信验证码登录(短验登录)的安全设计。后端通常需要提供获取短信验证码和手机短验登录两个API。为了增强机短验登录API的安全性,提出了几种无需依赖Redis等存储介质的方案:1)使用数字签名确保请求合法性;2)基于时间戳的验证,允许在一定时间范围内有效;3)应用TOTP算法生成动态码进行验证;4)利用JWTToken进行身份验证并设置有效期。文章强调了创新思考在解决安全问题中的重要性,并鼓励读者分享更多方案。
569 1