Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Python memanggil antara muka Alibaba Cloud untuk melaksanakan fungsi penjanaan kod pengesahan

Python memanggil antara muka Alibaba Cloud untuk melaksanakan fungsi penjanaan kod pengesahan

王林
王林asal
2023-07-06 08:02:201389semak imbas

Python memanggil antara muka Alibaba Cloud untuk melaksanakan fungsi penjanaan kod pengesahan

Kod pengesahan (CAPTCHA) ialah teknologi yang digunakan untuk mengesahkan identiti pengguna dan sering digunakan semasa membangunkan aplikasi web. Alibaba Cloud menyediakan perkhidmatan pengesahan mesin manusia yang berkuasa Dengan menghubungi antara muka Alibaba Cloud, kami boleh menjana dan mengesahkan kod pengesahan.

Pertama, kita perlu mencipta dan mengkonfigurasi produk pengesahan manusia-komputer pada konsol pengurusan Alibaba Cloud dan mendapatkan Kunci Akses dan Kunci Rahsia. Kemudian, kita boleh menggunakan pakej aliyun-python-sdk-afs dalam Alibaba Cloud SDK untuk memanggil antara muka yang sepadan.

Seterusnya, marilah kami melaksanakan aplikasi web berdasarkan rangka kerja Flask dan menunjukkan cara memanggil antara muka Alibaba Cloud untuk menjana kod pengesahan.

from flask import Flask, render_template, request, jsonify
from aliyunsdkafs.request.v20180112 import CreateVerifyCodeRequest, GetVerifyTokenRequest
from aliyunsdkcore.client import AcsClient
import json

# 替换成你的Access Key和Secret Key
access_key = <your_access_key>
secret_key = <your_secret_key>
# 替换成你的阿里云区域
region_id = 'cn-hangzhou'

# 初始化AcsClient
client = AcsClient(access_key, secret_key, region_id)

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/verify_code', methods=['POST'])
def verify_code():
    # 获取前端请求的数据
    data = request.get_json()
    session_id = data.get('sessionId')
    sig = data.get('sig')
    token = data.get('token')

    # 创建一个用于生成验证码的请求对象
    request = CreateVerifyCodeRequest.CreateVerifyCodeRequest()
    # 设置验证场景,例如登录、注册等
    request.set_Scn('nc_login')

    # 设置传递给防刷接口的参数
    request.set_SessionId(session_id)
    request.set_Sig(sig)
    request.set_Token(token)

    # 发出请求,并获取响应
    response = json.loads(client.do_action_with_exception(request))
    if response['Code'] == '100':
        # 验证码生成成功
        return jsonify({'success': True, 'data': response['Data']})
    else:
        # 验证码生成失败
        return jsonify({'success': False, 'msg': response['Msg']})


if __name__ == '__main__':
    app.run(debug=True)

Dalam kod di atas, kami menggunakan rangka kerja Flask untuk mencipta aplikasi web. Apabila mengakses halaman utama, templat bernama index.html akan dipaparkan. Apabila memanggil parameter seperti /verify_code接口时,会从前端请求中获取sessionIdsigtoken, antara muka Alibaba Cloud dipanggil untuk menjana kod pengesahan. Jika kod pengesahan berjaya dijana, kami mengembalikannya ke bahagian hadapan jika ia gagal, kami mengembalikan maklumat ralat ke bahagian hadapan.

Dalam templat index.html, kami mencipta borang ringkas yang mengandungi teg input tersembunyi untuk menyimpan sessionId yang dijana oleh Alibaba Cloud. Apabila pengguna menyerahkan borang, kod JavaScript akan dicetuskan untuk mendapatkan parameter seperti sig dan token daripada antara muka Alibaba Cloud dan menyerahkannya ke bahagian belakang.

Di atas ialah contoh kod yang menggunakan Python untuk memanggil antara muka Alibaba Cloud untuk melaksanakan fungsi penjanaan kod pengesahan. Dengan menghubungi perkhidmatan pengesahan komputer manusia Alibaba Cloud, kami boleh menghalang akses berniat jahat oleh robot dan penipuan tiket secara berkesan, serta meningkatkan keselamatan aplikasi web.

Atas ialah kandungan terperinci Python memanggil antara muka Alibaba Cloud untuk melaksanakan fungsi penjanaan kod pengesahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn