検索
ホームページPHPフレームワークLaravelLaravelでgoogle-authenticator--Google QRコードバリデーターを実装する方法

この記事は主に Laravel を使用した Google QR コード検証ツールの実装について説明していますが、一定の参考になる内容ですので、興味のある方はぜひ知っていただければ幸いです。

開発前の準備

  1. Laravelのインストール
  2. QRコードジェネレーターをインストールQrCode、インストールしなくてもできます。次にインストールされます

拡張パッケージをインストールします

1.次のコードを実行して拡張パッケージをインストールします:

1 composer require "earnp/laravel-google-authenticator:dev-master"
2 ### 安装二维码生成器
3 ### 若composer require不到文件自行github 下载源码放入vendor相应的目录下
4 composer require simplesoftwareio/simple-qrcode 1.3.*

2.ダウンロードとインストールが完了するまで待ちますconfig/app.php にインストールする必要があります サービス プロバイダーを登録し、同時に対応するファサードを登録します:

 'providers' => [
    //........
    Earnp\GoogleAuthenticator\GoogleAuthenticatorServiceprovider::class,
    SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class,
],

'aliases' => [
     //..........
    'Google' => Earnp\GoogleAuthenticator\Facades\GoogleAuthenticator::class,
    'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class
],

3. サービス インジェクション後、使用したい場合は、カスタム構成の場合は、構成ファイルを config/views ディレクトリに公開することもできます。

1 ###这一步可以不执行:视情况而定
2 php artisan vendor:publish

Use one (プロジェクトで使用)

使用方法は非常に簡単で、主に検証コードを生成します。検証コード

1、実稼働検証コード

実稼働検証 コードには CreateSecret を使用します。携帯電話でスキャンするには、コンテンツから QR コードを生成する必要があります。 APP。特定のコンテンツは google.blade.php


public function addUser(Request $request)
{
    if($request->isMethod('get')){
         // 创建谷歌验证码
         $createSecret = GoogleAuthenticator::CreateSecret();
         //$createSecret = [
         //   "secret" => "NJURUPQN6XNYGSF2"
         //   "codeurl" => "otpauth://totp/?secret=NJURUPQN6XNYGSF2"
         //]
         // 生成二维码
         $createSecret["qrcode"] = QrCode::encoding('UTF-8')->size(180)->margin(1)->generate($createSecret["codeurl"]);
         //发送页面
         return view('auth.auth.add',['google'=>$createSecret]);
    }
    //获取数据
    $user_from = $request->only(['role_id','username','pass','pass_confirmation','real_name','mobile','secret']);
   
    //保存入库 secret会存入数据库
    $auth_user = new AuthUserService();
    $res = $auth_user->addUser($user_from);
    return redirect('admin/auth/index');
}

2 で正常に構成されました。検証の検証code

//登录验证
public function login(array $param)
{
    $model = new AuthUserModel();
    //Google 验证
    if(!GoogleAuthenticator::CheckCode($userInfo['secret'],$param['secret'])){
        return ['status'=>false,'msg'=>['secret'=>['验证码错误,请重新输入']]];
    }

    $update = $model->editLoginInfo($userInfo['id'], $update);
    if(!$update){
        return ['status'=>false,'msg'=>['username'=>'更新登录信息失败']];
    }else{
        return ['status'=>true,'data'=>$userInfo];
    }
}

Use two (Demo)

1 , Verification validation code

通常、バインディングには検証検証コードが使用されます。 CheckCode メソッド。secret を渡す必要があります。onecode は検証できる検証コードです。最初のコードは secret です。 ; true または false


##

if(Google::CheckCode($google,$request->onecode)) {
    // 绑定场景:绑定成功,向数据库插入google参数,跳转到登录界面让用户登录
    // 登录认证场景:认证成功,执行认证操作
    dd("认证成功");
}else {
    // 绑定场景:认证失败,返回重新绑定,刷新新的二维码
    return back()->with('msg','请正确输入手机上google验证码 !')->withInput();
    // 登录认证场景:认证失败,返回重新绑定,刷新新的二维码
    return back()->with('msg','验证码错误,请输入正确的验证码 !')->withInput();
}

具体的な実践例を示します:

use Google;

if ($request->isMethod('post')) {
    if (empty($request->onecode) && strlen($request->onecode) != 6) return back()->with('msg','请正确输入手机上google验证码 !')->withInput();
    // google密钥,绑定的时候为生成的密钥;如果是绑定后登录,从数据库取以前绑定的密钥
    $google = $request->google;
    // 验证验证码和密钥是否相同
    if(Google::CheckCode($google,$request->onecode)) {
        // 绑定场景:绑定成功,向数据库插入google参数,跳转到登录界面让用户登录
        // 登录认证场景:认证成功,执行认证操作
        dd("认证成功");
    }else {
        // 绑定场景:认证失败,返回重新绑定,刷新新的二维码
        return back()->with('msg','请正确输入手机上google验证码 !')->withInput();
        // 登录认证场景:认证失败,返回重新绑定,刷新新的二维码
        return back()->with('msg','验证码错误,请输入正确的验证码 !')->withInput();
    }
}else {
    // 创建谷歌验证码
    $createSecret = Google::CreateSecret();
    // 您自定义的参数,随表单返回
    $parameter = [["name"=>"usename","value"=>"123"]];
    return view('login.google.google', ['createSecret' => $createSecret,"parameter" => $parameter]);
}

関連チュートリアル:

laravel ビデオチュートリアル

以上がLaravelでgoogle-authenticator--Google QRコードバリデーターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は博客园で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Laravelの使用:PHPでWeb開発を合理化しますLaravelの使用:PHPでWeb開発を合理化しますApr 19, 2025 am 12:18 AM

Laravelは、次のようなWeb開発プロセスを最適化します。1。ルーティングシステムを使用してURL構造を管理します。 2。ブレードテンプレートエンジンを使用して、ビュー開発を簡素化します。 3.キューを介して時間のかかるタスクを処理します。 4. Eloquentormを使用して、データベース操作を簡素化します。 5.ベストプラクティスに従って、コードの品質と保守性を向上させます。

Laravel:PHP Webフレームワークの紹介Laravel:PHP Webフレームワークの紹介Apr 19, 2025 am 12:15 AM

Laravelは、強力なツールセットを提供し、開発プロセスを簡素化し、コードの保守性とスケーラビリティを向上させる最新のPHPフレームワークです。 1)Eloquentormはデータベース操作を簡素化します。 2)ブレードテンプレートエンジンは、フロントエンド開発を直感的にします。 3)職人のコマンドラインツールは、開発効率を向上させます。 4)パフォーマンスの最適化には、MVCアーキテクチャ、キューの処理、および書き込みテストケースの使用、キャッシュメカニズムの使用、キャッシュメカニズムの使用が含まれます。

Laravel:MVCアーキテクチャとベストプラクティスLaravel:MVCアーキテクチャとベストプラクティスApr 19, 2025 am 12:13 AM

LaravelのMVCアーキテクチャは、データロジック、プレゼンテーション、ビジネス処理の分離のためのモデル、ビュー、およびコントローラーを介して、コードの構造と保守性を向上させます。 1)モデルはデータを処理します。2)ビューは表示の責任があります。3)コントローラーはユーザー入力とビジネスロジックを処理します。このアーキテクチャにより、開発者はビジネスロジックに集中し、コードの泥沼に陥ることを避けることができます。

Laravel:主な機能と利点が説明されていますLaravel:主な機能と利点が説明されていますApr 19, 2025 am 12:12 AM

Laravelは、MVCアーキテクチャに基づいたPHPフレームワークで、簡潔な構文、強力なコマンドラインツール、便利なデータ操作、柔軟なテンプレートエンジンを備えています。 1.エレガントな構文と使いやすいAPIにより、開発が迅速かつ使いやすくなります。 2。職人コマンドラインツールは、コード生成とデータベース管理を簡素化します。 3.Eloquentormは、データ操作を直感的かつシンプルにします。 4.ブレードテンプレートエンジンは、高度なビューロジックをサポートしています。

Laravelを使用したバックエンドの構築:ガイドLaravelを使用したバックエンドの構築:ガイドApr 19, 2025 am 12:02 AM

Laravelは、エレガントな構文、豊富な機能、強力なコミュニティサポートを提供するため、バックエンドサービスの構築に適しています。 1)LaravelはMVCアーキテクチャに基づいており、開発プロセスを簡素化します。 2)Eloquentormが含まれ、データベース操作を最適化します。 3)Laravel's Ecosystemは、開発効率を向上させるために、職人、ブレード、ルーティングシステムなどのツールを提供します。

Laravelフレームワークのスキル共有Laravelフレームワークのスキル共有Apr 18, 2025 pm 01:12 PM

継続的な技術の進歩のこの時代において、現代のプログラマーにとって高度なフレームワークをマスターすることが重要です。この記事では、Laravelフレームワークであまり知られていないテクニックを共有することで、開発スキルを向上させるのに役立ちます。エレガントな構文と幅広い機能で知られるこの記事では、その強力な機能を掘り下げ、効率的で保守可能なWebアプリケーションを作成するための実用的なヒントとコツを提供します。

LaravelとThinkPhpの違いLaravelとThinkPhpの違いApr 18, 2025 pm 01:09 PM

LaravelとThinkPhpはどちらも人気のあるPHPフレームワークであり、開発における独自の利点と短所を持っています。この記事では、2つの深さを比較し、アーキテクチャ、機能、パフォーマンスの違いを強調して、開発者が特定のプロジェクトのニーズに基づいて情報に基づいた選択を行うのに役立ちます。

Laravelユーザーログイン機能リストLaravelユーザーログイン機能リストApr 18, 2025 pm 01:06 PM

Laravelのユーザーログイン機能の構築は重要なタスクであり、この記事では、ユーザー登録からログイン検証までのすべての重要なステップをカバーする包括的な概要を提供します。 Laravelの組み込み検証機能の力に飛び込み、特定のニーズに合わせてログインプロセスをカスタマイズして拡張することをガイドします。これらのステップバイステップの手順に従うことにより、Laravelアプリケーションのユーザーにシームレスなアクセスエクスペリエンスを提供する安全で信頼性の高いログインシステムを作成できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。