最新のソーシャル ネットワークや電子商取引プラットフォームでは、高速で便利なログイン方法がユーザーを引き付ける重要な手段の 1 つです。スキャンしてログインすることは、簡単、高速、安全な方法の 1 つです。この記事では、PHPを使用してスキャンログインを実装する方法を紹介します。
1. スキャンしてログインする原理
スキャンしてログインとは、ユーザーが指定されたアプリを開くか、QR コードをスキャンした後、情報がサーバーに送信されることを意味します。サーバーは情報の有効性を判断し、ログイン検証を完了するための資格情報 (トークン) を返します。
2. 実装プロセス
スキャンしてログインする前に、次の作業を準備する必要があります:
画像を生成するには、対応するライブラリを使用する必要があります。この記事では、PHP QR コードを使用して QR コードを生成します。
include "phpqrcode.php"; QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
QR コードを生成するには、通常、リンクまたは文字列のデータ (データ) を渡す必要があります。例:
$data = "https://example.com/?token=xxxxxx"; QRcode::png($data, "qrcode.png", QR_ECLEVEL_L, 10, 2);
生成されたトークンが一意であり、セキュリティを確保するために有効期間が短いことを確認する必要があります。トークンを生成するには、jwt (JSON Web Token) の使用を検討してください。
// 生成令牌 $secret_key = "your-secret-key"; $header = '{"alg":"HS256","typ":"JWT"}'; $payload = '{"sub":"1234567890","name":"John Doe","iat":1516239022}'; $jwt = base64_encode($header) . "." . base64_encode($payload); $jwt .= "." . hash_hmac('sha256', $header . '.' . $payload, $secret_key, true);
これは実装例であり、実際の開発では状況に応じて適切な暗号アルゴリズムと鍵を選択する必要があります。
QR コードを検証する手順は次のとおりです:
// php 获取 POST 参数 $uuid = $_POST['uuid']; // 根据 uuid 查询数据库 if (检查 uuid 是否存在 && 检查 uuid 是否有效) { // 生成令牌 $token = 生成令牌; // 保存到数据库 保存 token 到数据库; // 返回给客户端 echo $token; }
// 解析 token $jwt = $_GET['jwt']; [$header, $payload, $signature] = explode(".", $jwt); $jwt_hash = hash_hmac('sha256', $header . '.' . $payload, $secret_key, true); if (base64_decode($signature) == $jwt_hash) { // 有效的 token }
以上がPHP はスキャンログインを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。