python web框架Flask——手机短信验证码

下列代码都是以自己的项目实例讲述的,相关的文本内容很少,主要说明全在代码注释中。

我是使用阿里云云通信的短信服务,第一次使用会摸不着头绪,这里我们需要做些准备工作:

  1、登陆自己的账号进入阿里云官网,没有账号的朋友们自行注册

  2、在导航栏上搜索“短信服务”,没有添加的话应该会有“免费开通”按钮,再进入管理控制台(我们需要添加这个短信服务板块,这样控制台会有短信服务这个模块),管理控制台的页面:

  3、添加api密钥,成功之后会自行生成一个入口api密钥 id 和 secret。

  4、在第一张图片上点击“添加签名”和“添加模板”,添加完相关信息,需要相关人员审核。添加模板时需要注意:

  5、写完所有的步骤,记得充值,冲个5块钱应该够了吧(反正是测试用的)

  6、准备工作做完,现在接下来的都是复制粘贴代码了(python3的朋友需要:pip install aliyun-python-sdk-core-v3`  python2的朋友:pip install aliyun-python-sdk-core)

  7、发送短信api接口配置

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest

class Alidayu(object):
    """
    api接口的初始化操作
    accessKeyId: api密钥的入口id
    accessSecret: api密钥的入口密码
    regionId: 一般是你云服务器的地区
    以上三个参数必不可少,封装成客户端实例
    发送配置(都是固定的配置)分别是发送短信的格式、域名、方式、协议、版本
    """
    def __init__(self):
        self.accessKeyId = "你的密钥入口id"
        self.accessSecret = "你的密钥入口secret"
        self.regionId = "cn-shanghai"   # 一般是上海或者杭州
        self.client = AcsClient(self.accessKeyId, self.accessSecret, self.regionId)

        # 发送配置(都是固定的配置)
        self.comRequest = CommonRequest()
        self.comRequest.set_accept_format("json")
        self.comRequest.set_domain("dysmsapi.aliyuncs.com")
        self.comRequest.set_method("POST")
        self.comRequest.set_protocol_type("https")
        self.comRequest.set_version("2017-05-25")

    def send_sms(self, telephone, code):
        """
        发送配置定义好,现在就是发送信息(验证码)
        发送信息之前的四个参数也是必不可少的:
        手机号码、短信签名名称、短信模板CODE、短信模板的内容参数值
        最后通过客户发送即可
        :param telephone: 手机号码
        :param code: 随机验证码
        :return:
        """
        self.comRequest.set_action_name("SendSms")
        self.comRequest.add_query_param("PhoneNumbers", "你的手机号码")
        self.comRequest.add_query_param("SignName", "你的短信签名名称")
        self.comRequest.add_query_param("TemplateCode", "你的模板CODE")
        # 这个是你配置的短信模板的内容里的参数名称,变量名一定要一样
        self.comRequest.add_query_param("TemplateParam", "{\"code\":\"%s\"}" % code)
        response = self.client.do_action(self.comRequest)
        print(response)
        return response

  8、编写一个视图函数,通过url访问就可以了

@bp.route("/sms_captcha")
def sms_captcha():
    telephone = request.args.get("telephone")
    if not telephone:
        return restful.params_error(message="请输入手机号码")

    # 借用图形验证码类中的获取随机验证码的方法
    captcha = Captcha.gene_text(numbers=4).replace(" ", "")
    # 上面的代码你可以删掉,把telephone换成具体的手机号码,captcha换成具体的验证码值
    alidayu = Alidayu()
    if alidayu.send_sms(telephone, captcha):
        # 可以print打印一下验证
        return restful.success()
    else:
        return restful.params_error(message="验证码发送失败!")

原文地址:https://www.cnblogs.com/aitiknowledge/p/11669114.html

时间: 2024-11-08 21:16:04

python web框架Flask——手机短信验证码的相关文章

Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结

Atitit. 破解  拦截 绕过 网站 手机 短信 验证码  方式 v2 attilax 总结 1. 验证码的前世今生11.1. 第一代验证码 图片验证码11.2. 第二代验证码  用户操作 ,比如要求拖动等21.3. 第三代验证码 手机验证码 短信验证码22. 短信验证码的原理23. 常用破解法23.1. 漏洞绕过法23.2. 手机 软件转发法23.3. 手机api法33.4. 默认万能密码法 测试维护万能验证码33.5. 网站服务器短信发出截获33.6. 配置文件法33.7. 前端源码截获

手机短信验证码时间倒计时

app 进入后台后,实现手机短信验证码时间不间断倒计时 //当app进入手机后台和手机前台时获取时间 - (void)applicationDidEnterBackground:(UIApplication *)application { NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0]; NSTimeInterval a=[dat timeIntervalSince1970] * 1000; NSString *timeString =

python web框架Flask——csrf攻击

CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用也就是人们所知道的钓鱼网站.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左.XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XS

ava调用WebService接口实现发送手机短信验证码功能

二:前台的注册页面的代码:reg.jsp  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <%@page import="cn.gov.csrc.base.action.FindAllData&

django之集成阿里云通信(发送手机短信验证码)

python3 + django2.0 集成 "阿里云通信" 服务: (SDK文档地址:https://help.aliyun.com/document_detail/55491.html?spm=5176.10629532.106.3.2fe01cbeAp0iFO) 步骤1: 在阿里云 "短信服务" 中创建一个签名 步骤2: 在阿里云 "短信服务" 中创建一个短信模板 步骤3: 下载阿里云 "短信服务" SDK 步骤4: 在

python web框架Flask——图形验证码及验证码的动态刷新

下列代码都是以自己的项目实例讲述的,相关的文本内容很少,主要说明全在代码注释中 自制图形验证码 这里所说的图形验证码都是自制的图形,通过画布.画笔.画笔字体的颜色绘制而成的.将验证码封装成一个类比较好管理,代码里有绝对详细的注释,当然大家可以直接复制. 里面涉及的字体都是从系统电脑上自带的,大家直接复制当前目录下就可以了. 主目录/utils/captcha/__init__.py import random import string # Image:一个画布 # ImageDraw:一个画笔

IIS 部署 python web框架 Flask

IIS的安装就不说了吧,然后运行:inetmgr ,打开iis管理器,打开 Web平台安装程序,(如果没有,百度下载安装一下吧),然后是安装--IIS:CGI 这个包. 接下来,添加网站,添加处理程序模块映射: 这里一定要进入网站控制台内的"处理程序映射",不要在IIS控制台直接进入,不然创建的FastCGI会对所有网站生效 右面点击"添加模块映射",具体内容如下,python路径|wfastcig.py文件的路径. 可执行文件一栏输入"python程序&

python web框架Flask后台登录

项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录下创建管理文件(供在命令行使用):manage.py 4.在主目录下创建app包,在app包下再创建cms包管理后台的文件 5.在cms包下创建views.py文件管理视图函数.models.py文件管理数据库模型.forms.py文件管理表单验证 填写配置文件 在配置文件下配置密钥.数据库连接等(

SSH2框架实现注冊发短信验证码实例

这两天開始写程序了,让用SSH2框架,曾经没有接触过Java项目更没有接触过SSH2框架,所以用注冊開始了我Java之旅.后来发现,后台代码挺easy理解的,跟.net的差点儿相同.就是层与层之间的调用,可是前面前台的交互我差非常多,在这里总结一下,顺便跟大家看一下.怎么实现往手机上发送短信验证码的.. 大家先看看我的界面. 原图: 短信验证码错误的界面: 短信验证码正确的界面: 以下開始我的界面代码展示(JSP): <body > <h2 class="titlelog&qu