欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Laravel-google-authenticator--Google验证码

程序员文章站 2022-11-21 18:03:30
开发前的准备 安装拓展 1、运行如下代码安装拓展包: 2、等待下载安装完成,需要在config/app.php中注册服务提供者同时注册下相应门面: 3、服务注入以后,如果要使用自定义的配置,还可以发布配置文件到config/views目录: 使用 使用方法非常简单,主要为生成验证码和教研验证码 1、 ......

开发前的准备

  1. 安装laravel 
  2. 安装二维码生成器qrcode,没有安装也可以,接下来会安装

安装拓展

1、运行如下代码安装拓展包:

1 composer require "earnp/laravel-google-authenticator:dev-master"
2 ### 安装二维码生成器
3 composer require simplesoftwareio/simple-qrcode 1.3.*

2、等待下载安装完成,需要在config/app.php中注册服务提供者同时注册下相应门面:

 1 'providers' => [
 2     //........
 3     earnp\googleauthenticator\googleauthenticatorserviceprovider::class,
 4     simplesoftwareio\qrcode\qrcodeserviceprovider::class,
 5 ],
 6 
 7 'aliases' => [
 8      //..........
 9     'google' => earnp\googleauthenticator\facades\googleauthenticator::class,
10     'qrcode' => simplesoftwareio\qrcode\facades\qrcode::class
11 ],

3、服务注入以后,如果要使用自定义的配置,还可以发布配置文件到config/views目录:

1 php artisan vendor:publish

使用

使用方法非常简单,主要为生成验证码和教研验证码

1、生产验证码

生产验证码使用createsecret即可,你需要将其内容生成二维码供手机app扫描,具体内容在google.blade.php中已经配置成功

1 // 创建谷歌验证码
2 $createsecret = google::createsecret();
3 // 您自定义的参数,随表单返回
4 $parameter = [["name"=>"usename","value"=>"123"]];
5 return view('login.google.google', ['createsecret' => $createsecret,"parameter" => $parameter]);

2、校验验证码

校验验证码一般用于绑定,登录认证中,使用checkcode方法即可,需要传入secrectonecode即验证码即可进行校验,第一个为secrect;返回truefalse

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]);
}