zoukankan      html  css  js  c++  java
  • laravel5.6 QQ 第三方登录

    https://socialiteproviders.github.io/providers/qq.html

    1. Installation

    // This assumes that you have composer installed globally
    composer require socialiteproviders/qq
    

    # 2. Service Provider

    • Remove LaravelSocialiteSocialiteServiceProvider from your providers[] array in configapp.php if you have added it already.

    • Add SocialiteProvidersManagerServiceProvider::class to your providers[] array in configapp.php.

    For example:

    'providers' => [
        // a whole bunch of providers
        // remove 'LaravelSocialiteSocialiteServiceProvider',
        SocialiteProvidersManagerServiceProvider::class, // add
    ];
    
    • Note: If you would like to use the Socialite Facade, you need to install it.

    # 3. Event Listener

    • Add SocialiteProvidersManagerSocialiteWasCalled event to your listen[] array in app/Providers/EventServiceProvider.

    • Add your listeners (i.e. the ones from the providers) to the SocialiteProvidersManagerSocialiteWasCalled[] that you just created.

    • The listener that you add for this provider is 'SocialiteProviders\QQ\QqExtendSocialite@handle',.

    • Note: You do not need to add anything for the built-in socialite providers unless you override them with your own providers.

    For example:

    /**
     * The event handler mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        SocialiteProvidersManagerSocialiteWasCalled::class => [
            // add your listeners (aka providers) here
            'SocialiteProviders\QQ\QqExtendSocialite@handle',
        ],
    ];
    

    # Reference

    # 4. Configuration setup

    You will need to add an entry to the services configuration file so that after config files are cached for usage in production environment (Laravel command artisan config:cache) all config is still available.

    # Add to config/services.php.

    'qq' => [
        'client_id' => env('QQ_KEY'),
        'client_secret' => env('QQ_SECRET'),
        'redirect' => env('QQ_REDIRECT_URI')
    ],
    

    # 5. Usage

    • Laravel docs on configuration

    • You should now be able to use it like you would regularly use Socialite (assuming you have the facade installed):

    return Socialite::with('QQ')->redirect();
    

    # Lumen Support

    You can use Socialite providers with Lumen. Just make sure that you have facade support turned on and that you follow the setup directions properly.

    Note: If you are using this with Lumen, all providers will automatically be stateless since Lumen does not keep track of state.

    Also, configs cannot be parsed from the services[] in Lumen. You can only set the values in the .env file as shown exactly in this document. If needed, you can also override a config (shown below).

    # Stateless

    • You can set whether or not you want to use the provider as stateless. Remember that the OAuth provider (Twitter, Tumblr, etc) must support whatever option you choose.

    Note: If you are using this with Lumen, all providers will automatically be stateless since Lumen does not keep track of state.

    // to turn off stateless
    return Socialite::with('QQ')->stateless(false)->redirect();
    
    // to use stateless
    return Socialite::with('QQ')->stateless()->redirect();
    

    # Overriding a config

    If you need to override the provider's environment or config variables dynamically anywhere in your application, you may use the following:

    $clientId = "secret";
    $clientSecret = "secret";
    $redirectUrl = "http://yourdomain.com/api/redirect";
    $additionalProviderConfig = ['site' => 'meta.stackoverflow.com'];
    $config = new SocialiteProvidersManagerConfig($clientId, $clientSecret, $redirectUrl, $additionalProviderConfig);
    return Socialite::with('QQ')->setConfig($config)->redirect();
    

    # Retrieving the Access Token Response Body

    Laravel Socialite by default only allows access to the access_token. Which can be accessed via the LaravelSocialiteUser->token public property. Sometimes you need access to the whole response body which may contain items such as a refresh_token.

    You can get the access token response body, after you called the user() method in Socialite, by accessing the property $user->accessTokenResponseBody;

    $user = Socialite::driver('QQ')->user();
    $accessTokenResponseBody = $user->accessTokenResponseBody;
    

    # Reference

    参考地址:https://laravel-china.org/docs/laravel/5.6/socialite/1418

    https://socialiteproviders.github.io/providers/qq.html

  • 相关阅读:
    Python len() 方法
    Python join() 方法
    Python isupper() 方法
    使用quartz进行容器启动时登陆接口服务器和接口服务器进行心跳连接
    实现锁死的有滚动条的div的表格(datagird)
    使用spring的事务的三种方法
    webservice系统学习笔记7-使用handler实现过滤器/拦截器效果
    webservice系统学习笔记7-异常处理
    webservice系统学习笔记6-使用soap的header传递消息
    JSTL fmt:formatNumber 数字、货币格式化
  • 原文地址:https://www.cnblogs.com/lxwphp/p/9441545.html
Copyright © 2011-2022 走看看