我在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登录做了所有类似的事情,它工作得非常完美。。
以下是我的解决方案:
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工匠缓存:清除