


Comment implémenter google-authenticator - validateur de code QR Google dans Laravel
Cet article parle principalement de l'utilisation de Laravel pour implémenter le validateur de code QR de Google. Il a une certaine valeur de référence. J'espère que les amis intéressés pourront en apprendre davantage.
Préparation avant développement
- Installer Laravel
- Installer le générateur de code QR
QrCode
, vous pouvez le faire sans installation, il sera installé ensuite
Installer l'extension
1. Exécutez le code suivant pour installer le package d'extension :
1 composer require "earnp/laravel-google-authenticator:dev-master" 2 ### 安装二维码生成器 3 ### 若composer require不到文件自行github 下载源码放入vendor相应的目录下 4 composer require simplesoftwareio/simple-qrcode 1.3.*
2. Attendez la fin du téléchargement et de l'installation. enregistrez le fournisseur de services dans config/app.php
en même temps. Téléchargez la façade correspondante :
'providers' => [ //........ Earnp\GoogleAuthenticator\GoogleAuthenticatorServiceprovider::class, SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class, ], 'aliases' => [ //.......... 'Google' => Earnp\GoogleAuthenticator\Facades\GoogleAuthenticator::class, 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class ],
3. Après l'injection de service, si vous souhaitez utiliser une configuration personnalisée, vous pouvez également publier le fichier de configuration dans le fichier de configuration. Répertoire config/views :
1 ###这一步可以不执行:视情况而定 2 php artisan vendor:publish
Utilisez-en un (utilisé dans le projet)
La méthode d'utilisation est très simple, principalement pour générer du code de vérification et vérifier le code de vérification
1. Code de vérification de la production
À l'aide du code de vérification de la productionCreateSecret
c'est-à-dire Oui, vous devez générer un code QR pour que le contenu soit analysé par l'application mobile. Le contenu spécifique a été configuré avec succès dans <🎜. >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'); }
//登录验证 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]; } }
Vous devez transmettre CheckCode
et <. 🎜>, qui sont des codes de vérification, pour vérification. Le premier est secrect
; retourner onecode
Ou secrect
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]); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

Laravel - URL d'action - Laravel 5.7 introduit une nouvelle fonctionnalité appelée « URL d'action appelable ». Cette fonctionnalité est similaire à celle de Laravel 5.6 qui accepte la méthode string in action. L'objectif principal de la nouvelle syntaxe introduite par Laravel 5.7 est de diriger
