Php Laravel 5.8中的ArgumentCountError
我正在尝试使用社交名将社交身份验证添加到Laravel5.8API项目中 当尝试处理社会化提供回调时,这里会抛出Php Laravel 5.8中的ArgumentCountError,php,laravel,Php,Laravel,我正在尝试使用社交名将社交身份验证添加到Laravel5.8API项目中 当尝试处理社会化提供回调时,这里会抛出ArgumentCountError 函数App\Http\Controllers\SocialAuthController::handleProviderCallback()的参数太少,传递了0个参数,实际需要1个参数 错误是指此代码块的第一行 public function handleProviderCallback($provider) { // retrieve so
ArgumentCountError
函数App\Http\Controllers\SocialAuthController::handleProviderCallback()的参数太少,传递了0个参数,实际需要1个参数
错误是指此代码块的第一行
public function handleProviderCallback($provider)
{
// retrieve social user info
$socialUser = Socialite::driver($provider)->stateless()->user();
// check if social user provider record is stored
$userSocialAccount = SocialAccount::where('provider_id', $socialUser->id)->where('provider_name', $provider)->first();
if ($userSocialAccount) {
// retrieve the user from users store
$user = User::find($userSocialAccount->user_id);
// assign access token to user
$token = $user->createToken('Pramopro')->accessToken;
// return access token & user data
return response()->json([
'token' => $token,
'user' => (new UserResource($user))
]);
} else {
// store the new user record
$user = User::create([
'name' => $socialUser->name,
'username' => $socialUser->email,
'email_verified_at' => now()
]);
...
// assign passport token to user
$token = $user->createToken('******')->accessToken;
// return response
return response()->json(['token' => $token]);
}
}
下面是我如何设置其他代码的。第一次在env
I添加
GOOGLE_CLIENT_ID=******
GOOGLE_CLIENT_SECRET=*******
GOOGLE_CALLBACK_URL=https://staging.appdomain.com/api/v1/user
然后修改web.php
Auth::routes(['verify' => true]);
Route::get('/auth/{provider}', 'SocialAuthController@redirectToProvider');
Route::get('/auth/{provider}/callback', 'SocialAuthController@handleProviderCallback');
最后,在google应用程序中,我添加了uri路径,用户在成功验证后将被重定向到该路径
https://staging.appdomain.com/api/v1/user
如何修复此问题?成功身份验证后用户应重定向到的回调uri显然未被缓存。所以运行
php-artisan-route:cache
修复了它。成功身份验证后用户应该重定向到的回调uri显然没有被缓存。所以运行php-artisan-route:cache
修复了它。当您收到错误时,哪个是url地址?@mdexp url是https://staging.appdomain.com/api/v1/user?state=.....
此处缺少参数,您需要在启动函数时发送$provider参数,当您收到错误时,这是url地址?@mdexp url是https://staging.appdomain.com/api/v1/user?state=.....
此处缺少参数,启动函数时需要发送$provider参数