zoukankan      html  css  js  c++  java
  • laravel实现QQ登录

    Laravel实现QQ登录(可参考https://learnku.com/articles/24984)
    环境:
    laravel:5.5.40
    php: 7.2.2
    前置条件,在qq互联有创建应用的权限。https://blog.csdn.net/qq_25615395/article/details/80251094

    1. 利用composer安装qq登录的依赖(在命令行输入框)
    composer require socialiteproviders/qq

    2. 将第三方的登录服务者注册进容器内(config/app.php)
    'providers' => [
    // 移除 'LaravelSocialiteSocialiteServiceProvider',
    SocialiteProvidersManagerServiceProvider::class, // 添加
    ];

    3. 添加门脸类(config/app.php)
    'Socialite' => LaravelSocialiteFacadesSocialite::class,

    4. 添加事件监听器(App/Providers/EventServiceProvider)
    protected $listen = [
    'SocialiteProvidersManagerSocialiteWasCalled' => [
    'SocialiteProvidersQqQqExtendSocialite@handle',//这里的SocialiteProvidersQqQqExtendSocialite@handle,里面有个q改成大写
         'SocialiteProvidersQQQqExtendSocialite@handle',//改成这样就对了,之前如果那个q是小写的话会报找不到类的错误。
    ], ];

    5. 在config/service.php添加QQ接口信息
    'qq' => [
    'client_id' => env('QQ_KEY'),
    'client_secret' => env('QQ_SECRET'),
    'redirect' => env('QQ_REDIRECT_URI'),
    ],

    6. 在.env里面QQ接口的信息
    QQ_KEY=xxxxxx
    QQ_SECRET=xxxxxx
    QQ_REDIRECT_URI=xxxxxx

    QQ_KEY和QQ_SECRET需要在qq互联上申请,QQ_REDIRECT_URI需要在qq互联上设置。
    这里的回调地址必须要跟qq互联管理中心(https://connect.qq.com)设置的回调地址一样。

    7. 添加路由routes/web.php
    // 登录界面的展示
    Route::get('auth/{service}', 'AuthSocialiteLoginController@redirectToProvider')->name('socialite_login_form');
    // 登录回调的处理
    Route::get('auth/{service}/callback', 'AuthSocialiteLoginController@handleProviderCallback')->name('socialite_login');

    8. 前台登录界面的使用

    <div class="form-group">
    <div class="col-md-8 col-md-offset-4">
    <button type="submit" class="btn btn-primary">
    登录
    </button>
    
    <a class="btn btn-link" href="{{ route('password.request') }}">
    忘记密码?
    </a>
    <a class="btn btn-link" href="{{route('socialite_login_form','qq')}}"><i class="fa fa-qq"></i> qq登录</a>
    </div>
    </div>


    9. 添加控制器AppHttpControllersAuthSocialiteLoginController.php

    <?php
    
    namespace AppHttpControllersAuth;
    
    use IlluminateHttpRequest;
    use AppHttpControllersController;
    use LaravelSocialiteFacadesSocialite;
    
    /**
    * 第三方登录控制器
    *
    * Class SocialiteLoginController
    * @package AppHttpControllersAuth
    */
    class SocialiteLoginController extends Controller
    {
    /**
    * 第三方登录用户信息的展示
    *
    * @param $service
    * @return mixed
    */
    public function redirectToProvider($service)
    {
    return Socialite::driver($service)->redirect();
    }
    
    /**
    * 处理第三方登录的回调
    *
    * @param $service
    */
    public function handleProviderCallback($service)
    {
    $user = Socialite::driver($service)->user();
    dd($user);
    }
    }

    CURL出现code ERROR 60错误

    https://curl.haxx.se/ca/cacert.pem 下载cacert.pem文件

    放到php路径下的【extrasssl】文件夹里面。

    然后打开【php.ini】文件,找到最后面的【curl.cainfo = 】修改为【curl.cainfo = cacert.pem文件路径】,保存即可

    curl.cainfo ="D:WAMPPHPTutorialphpphp-7.2.1-ntsextrassslcacert.pem"

    重启phpstudy


    原文:https://blog.csdn.net/qq_25615395/article/details/80251455

  • 相关阅读:
    软件/环境的注册码
    js图片延迟加载如何实现
    http状态码
    关于深拷贝(含数组对象)
    javascript继承方式详解
    使用寄生构造函数 创建类
    前端知识点大全【转载】
    统一addEventListener与attachEvent中this指向问题
    sublime text全程指南【转载】
    函数防抖与节流[转载]
  • 原文地址:https://www.cnblogs.com/gwhm/p/11027796.html
Copyright © 2011-2022 走看看