登録認証コードの販売: 手を持って阿里雲メール認証コード (全プロセス実技ガイド) にアクセスします
多くの人が初めてメールの認証コードをチェックしたとき、いろいろな鍵、署名、テンプレート、SDKが頭が大きくなったように聞こえる。
実は、メールを成功させるには、全部で3つのステップに分けられます
阿里雲のバックグラウンドに行って資質を申請し、コードの中でインタフェースを呼び出し、安全なブラシを処理する。
今日私たちは最も接地的な言葉で、この流れを徹底的に説明します。あなたの阿里雲アカウントを用意して、私たちは今から始めます。
認証コードを登録して購入する
第一段階: 阿里雲バックグラウンドの「通関ごろつき三点セット」
阿里雲の楽屋に行くのは仕事ホールに行って審査するようなもので、次の3つのものを全部持って、コードが通じている。
1.サイン (あなたは誰ですか)
ショートメッセージの冒頭の
【あなたの製品名】
サインです。国は詐欺防止のために厳しく管理されています。
ピットガイド: まだ会社を登録していない場合は、すでにオンラインになっている個人サイト、APPまたはマイクロメッセンジャーの名前で申請することができます。何もなければ、大きな確率で審査できない。
話術テクニック: 申請理由には「Appユーザー登録登録時に認証コードを発行し、オンラインになった、App名はXXX」と書かれている。
2.テンプレート (あなたが送ったのは何ですか)
認証コードを登録して購入する
テンプレートはメールの具体的な内容です。認証コードのテンプレートは簡単で、一般的には次のようになります
認証コード ${code} は、新しいユーザーに登録しています。5分以内に有効です。他人に漏らさないようにしてください。
ここの ${code} はプレースホルダで、次のコードは本当の4桁または6桁の数字を渡します。
3. Accessキー (あなたの許可証)
これが一番重要です。含まれています
アクセサリID
そして
アクセサリの秘密
(略称はAK/SK)。
一般的な理解: それはあなたの阿里雲でのアカウントとパスワードです。コードにはそれを持っていなければならず、阿里雲はこのメール料金が誰のお金を差し引くべきかを知ることができない。
セキュリティ警告: access keyをGitHubにアップロードしないでください! 数分以内にアカウントがハッキングされる可能性があります。これをサーバのグローバル環境変数に書くことをお勧めします。
第二段階: 心配しないで、上のコード!
「署名、テンプレート、access key」があれば、コードを書くことができます。ここで最もよく見られるのは
Node.js
そして
Python
例 (他の言語の論理は全く同じ)。
例1: Pythonバージョン
まず、阿里雲の公式SDKをインストールします
バッシュ
Pipインストルメントスacloud_dysmsapi2017525 = = 2.24.
次に、コアに直接コードを送信します
Python
import os
From alibaba acloud_dysmsapi2017525.client import Client
From a
Libabacloud_tea_openapi import model as open_api_model
From acloud_dysmsapi2017525 import model as dysms_api_model
Defsend_sms_code (phone_number, code):
#1.構成を初期化し、環境変数から通関鍵を読み取る
Config = open_api_model. Config (
Access _ key _ id = os.environ.get('ALIBABA _ cloud _ access _ key _ id '),
Access _ key _ secret = os.environ.get('ALIBABA _ cloud _ access _ key _ secret ')
)
# 阿里雲メールの固定サービスアドレス
Config.endpoint = 'dysmsapi _'
Client = Client(config)
#2.あなたのメールの内容を組み立てる
Request = dysms_api_model. SendSmsRequest (
Phone_numbers = phone_number、 # メールを受信する携帯電話番号
Sign_name = 「あなたのメール署名」、 # 例: 【極客ノート】
Template_code = 'sms _ 123456789' 、 # あなたが申請したテンプレートID
Template_param = f'{{"code":"{code}"}}'# ランダム認証コードを詰め込むには、JSON文字列でなければなりません
)
#3.結果を送信して確認する
試してみる:
Response = client.send_sms(request)
Ifresponse.body.code = 'ok ':
Print (「メール送信成功しました! ")
Returtrue
Else:
プリント (f"
送信に失敗しました。原因:{response.body.message}")
Return False
例外as errorの場合:
Print (f "システムエラー:{error}")
Return False
例2: Node.jsバージョン
Node.jsを使っている場合は、このパッケージをインストールします
ショートメッセージ認証コード購入
バッシュ
Npm install @ alicloud/dysmsapi2017525
コアコードは次のとおりです
JavaScript
Const {default: Client, SendSmsRequest } = require('@ alicloud/dysmsapi2017525');
Const OpenApi = require('@ alicloud/openapi-client');
Async function sendSms(phone, code) {
Let config = newopenapi.Config({
AccessKeyId: process.V1.0.Alicloud_access _ key _ id,
Accessキーシークレット
Endpoint: 'dysmsapi>
});
Let client = newclient (config);
Let request = newsendsmsrequest ({
PhoneNumbers: phone,
SignName: 「あなたのメール署名」
TemplateCode: 'sms _ 123456789',
TemplateParam: JSON.stringify({ code: code })
});
Try {
Let result = await client.sendSms(request);
If (result.body.code === 'OK') {
Cons
Ole.log('送信成功');
} Else {
Console.log('失敗:', result.body.message);
}
} Catch (body) {
コンソール.error('エラー:' 、rr);
}
}
第三段階: ユーザー登録時の完全な業務ロジック (初心者必見)
多くの初心者は上のインターフェイスを調整したと思っています。実際の業務では、あなたのバックエンドがやるべきことがたくさんあります。標準的な「認証コード登録」プロセスは次のようになります
[ユーザーの携帯番号] --> 1.携帯番号のフォーマットを検証します。分の期限が切れました。
Redis (またはデータベースキャッシュ) を使用する必要があるのはなぜですか?
なぜなら
阿里雲はあなたにメールを送るのを手伝ってくれるだけで、それはあなたに認証コードを記録する責任はありません!
ユーザーがメールを受信したら、携帯電話で入力します
1234
「提出」をクリックすると、あなたのサーバーはさっき彼に送ったのかどうかを知る必要があります
1234
。
送信時: ランダム数1234を生成し、Redisに格納し、Keyはsms: gmail: 138xxxxxx、Valueは1234、有効期限300秒を設定します。
検証時: ユーザーが1234を提出します。バックエンドはRedisに行ってsms: バースト: 138xxxxxxの値を調べる。もし合ったら、通過しますもし合わないか、見つからない場合は、「認証コードが間違っているか、期限切れになっている」と戻ります。
第四段階: ブラシ防止大作戦 (これを見ないと下着を失うかもしれない)
ハッカーのサークルには「メール爆撃機」という人がいます。彼らはスクリプトであなたの登録インタフェースを呼び出して、一晩であなたの数万件のメール料金を消費することができます。不当な扱いをするためには、バックエンドに追加しなければならない
3つのファイアウォール
。
防護レベル
具体的手段
なぜ有効なのか
第一道: 時間制限
1つの携帯電話番号は60秒以内に一度しか発行できません。
フロントエンドとバックエンドの連続手ぶれ狂点を傍受する。
第二道: 図形認証コード
「認証コードを取得」をクリックする前に、スライダーまたは画像認証コードを入力する必要があります。
最も有効な手段。脚本を書く機械を直接ドアの外に止める。
第三コース: 総量制限
同じ携帯電話番号、同じIPで、24時間以内に最大5本発行します。
最初の2つの防御線が守られていなくても、すぐに損害を止めることができる。
補足説明: 阿里雲バックグラウンドには「汎用安全防護」機能が付属している。バックグラウンドに行って「単日送信上限」を少し低く設定することを覚えています (例えば100)
0条)。このようにして、もしコードがバグを書いたり、塗られたりしたら、限度になると自動的に溶断して、財産を浪費させることはない。
デバッグミスの口訣
コードを実行してエラーを発見したときは、慌てないでください。阿里雲のエラーコード (SubCode) は実ははっきりしている
SMS認証コードの購入
Isv.Mobile _ number _ illegal: 携帯電話番号のフォーマットが間違っていて、11桁の数字が間違っているか、スペースが入っているかをチェックします。
Isv.Business _ limit_control: トリガー頻度が制限されています。あなたのテストが頻繁で、阿里雲に一時的に傍受されたことを示して、1分待ってからやってみます。
Isv.SMS_SIGNATURE_ILLEGAL: 署名が不正です。あなたのコードの中の署名をチェックして、阿里雲のバックグラウンド審査で通過した署名と間違っているかどうかをチェックします。
SMS認証コードの購入
