提问者:小点点

Laravel|领英和社交名媛-不传递参数


我在Laravel上遇到了一个社交名流的问题,我想在我的网站上添加一个LinkedIn登录,我已经添加了一个100%有效的Twitter登录。我的问题是当我返回Socialite::driver('linkedin')时-

https://www.linkedin.com/oauth/v2/authorization?client_id=

我得到一个错误,因为正如您所看到的,URL没有客户端id和重定向uri参数。。如果我手动操作,一切都会正常。我检查了我的房间。环境文件,我的服务。php和我的SocialAuthController也是。。我搞不懂。。这是我的名片。环境文件:

LINKEDIN_ID=XXX123XXX123XXX
LINKEDIN_SECRET=XXX456XXX456XXX

我的服务文件:

    'linkedin' => [
    'client_id' => env('LINKEDIN_ID'),
    'client_secret' => env('LINKEDIN_SECRET'),
    'redirect' => env('APP_URL') . '/oauth/linkedin/callback',
],

我的社交授权控制器:

public function redirectToProvider($driver)
{
    if ($driver === 'linkedin')
    {
        return Socialite::driver('linkedin')->redirect();
    }
}

最后是我的路线:

Route::get('auth/social', 'Auth\SocialAuthController@show')->name('social.login');
Route::get('login/{driver}', 'Auth\SocialAuthController@redirectToProvider')->name('social.oauth');
Route::get('login/{driver}/callback', 'Auth\SocialAuthController@handleProviderCallback')->name('social.callback');

我为Twitter登录做了所有类似的事情,它工作得非常完美。。


共1个答案

匿名用户

以下是我的解决方案:

web.php

Route::get('/redirect', 'Auth\LoginController@redirectToProvider');
Route::get('/callback', 'Auth\LoginController@handleProviderCallback');
Route::get('/shopping', 'GoogleShopping\GShoppingController@index');//redirect to home

配置/services.php

 'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_APP_SECRET'),
        'redirect' => env('GOOGLE_REDIRECT_URL'),//it must be same the home url
    ]

控制器/Auth/LoginController。php

try {
   $user = Socialite::driver('google')->user();
 } catch (\Exception $e) {
   return view('/');
 }

 return redirect()->to('/shopping');

是非常重要的清理缓存php工匠配置:缓存php工匠缓存:清除