• Django和Vue的短信验证码


    先下载

      pip install aliyun-python-sdk-core
    

    这里的短信验证是阿里云的短信验证。
    先在阿里云创建一个签名管理和模块管理。

    登录上阿里云,右上角是头像,头像左边控制台,点开控制台,然后搜索短信服务,左边栏上点开国内信息,就可以看到签名模块和管理模块

    设置AK和SK
    将你的鼠标放在你的头像上,下面会出来一个AccessKey 管理,点进去激活就好,然后把AK和SK记下就好。

    在项目里面创建一个utils在下面在创建一个BaseView.py

    一定要看好目录等级

    BaseView.py:

      from aliyunsdkcore.client import AcsClient
      from aliyunsdkcore.request import CommonRequest
      from rest_framework_jwt.settings import api_settings
      import json
    
      def create_token(user):
          # 生成jwt_token,user是一个对象或者是查询结果"key":"value"
          jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
          jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
          payload = jwt_payload_handler(user)
          token = jwt_encode_handler(payload)
          return token
    
    
      def send_sms(phone, data):
          client = AcsClient('LTAI4G1MvKrBJjincAogP3qE', 'D1TjXd1DyovJLr6vFwC2lxeEAFaKl2', 'cn-hangzhou')
          # client = AcsClient('AK', 'SK', 'cn-hangzhou')
          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('RegionId', "cn-hangzhou")
          request.add_query_param('PhoneNumbers', phone)
          request.add_query_param('SignName', "ABC商城")
          request.add_query_param('TemplateCode', "SMS_205403766")
          request.add_query_param('TemplateParam', data)
    
          response = client.do_action(request)
          # python2:  print(response)
    
          res = json.loads(str(response, encoding='utf-8'))
          print(res)
          if res['Code'] == "OK":
              return True
          else:
              return False
    

    views:

    from rest_framework.views import APIView
    from rest_framework.response import Response
    import random
    from utils.BaseView import send_sms
    
    
    
    class SMSCodeView(APIView):
        def post(self, request):
            phone = request.data.get('phone')
            num = random.randint(100000, 999999)
            send_data = {'code': num}
            res = send_sms(phone, send_data)
            if res:
                return Response({'code': 0, 'msg': '成功'})
            else:
                return Response({'code': 9999, 'msg': '哦不'})
    

    然后自己在配置一下路由就可以了

    代码可以直接复制,改修改的东西,你改成你的就可以。

  • 相关阅读:
    【转】pymongo实现模糊查询
    使用pip安装包提示TLS证书错误解决办法
    sed用法去除行首和行末的中括号
    logstash之filter处理中括号包围的内容
    根据IP查地理位置信息
    shell生成连续天数日期
    linux grep 取出特定字符串并统计个数
    【转】css3实现文字闪烁,改变透明度
    【转】Django中使用POST方法获取POST数据
    [算法]机器人运动范围
  • 原文地址:https://www.cnblogs.com/kaka007/p/13935671.html
Copyright © 2020-2023  润新知