我正在使用Socialite进行Google身份验证,我有一个中间件来检查用户是否通过他们的google_id存在于我的本地数据库中,它可以重定向到/ home页面,否则它将重定向回到Google身份验证页面,而这样做,我在中间遇到问题,错误是:
客户端错误:POST https://www.googleapis.com/oauth2/v4/token
导致400 Bad Request
响应:{“错误”:“无效请求”,“错误说明”:“缺少所需参数:代码”}
中间件
<?php
namespace App\Http\Middleware;
//use Socialite;
use App\GmailAccount;
use Closure;
use Laravel\Socialite\Facades\Socialite;
use Illuminate\Support\Facades\Auth;
class GoogleAuth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = Socialite::driver('google')->stateless()->user();
$finduser = GmailAccount::where('google_id', $user->id)->first();
if($finduser){
return $next($request);
}
else{
return route('/logingoogle');
}
}
}
路线
Route::group(['middleware' => 'App\Http\Middleware\GoogleAuth'], function()
{
Route::get('/home', 'HomeController@index')->name('home');
});
Route::get('/logingoogle', 'GoogleController@google_login');
Route::get('auth/google', 'GoogleController@redirectToGoogle');
Route::get('auth/google/callback', 'GoogleController@handleGoogleCallback');
if($finduser) {
auth()->login($finduser), true);
}
else {
return redirect('/logingoogle');
}