Laravel Passportでは、サーバーからアクセストークンを取得した後、クライアントからユーザー情報にアクセスできます。今、クライアントのダッシュボードにリダイレクトする方法が残っていますか? 、 ダッシュボードにリダイレクトする前にAuth
でユーザー情報を保存すると、後でVarifyUser
ミドルウェアを通じて他のすべてのルートを確認したい:Laravel 5.4 Passport - アクセストークンからユーザー情報を取得した後にクライアントダッシュボードにリダイレクトする方法
Route::get('/callback', function (Illuminate\Http\Request $request) {
$http = new GuzzleHttp\Client;
$response = $http->post('http://localhost.server:8080/oauth/token', [
'form_params' => [
/* Auth code grant*/
'client_id' => '<client_id>',
'client_secret' => '<client_secret>',
'grant_type' => 'authorization_code',
'redirect_uri' => 'http://localhost.client:8000/callback',
'code' => $request->code,
],
]);
$auth_grant = json_decode((string) $response->getBody(), true);
$token_type = $auth_grant['token_type'];
$access_token = $auth_grant['access_token'];
$user_auth = $http->request('GET', 'http://localhost:8080/api/user', [
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'Authorization' => $token_type.' '.$access_token,
],
]);
$usrAuth = json_decode((string) $user_auth->getBody(), true);
});
注:
は、ここに私のコールバック関数です。 Auth::check
を介してユーザーを認証します。
Route::group(['middleware' => ['verify_user', 'language']], function(){
// If you want to check loggining user, have to use 'verify_user' middleware
route::group(['namespace' => 'Index'], function(){
Route::get('/index', '[email protected]');
});
route::group(['namespace' => 'Group'], function(){
// Group page
Route::get('/group-registration', '[email protected]');
// Register group
Route::post('/registerGroup', '[email protected]');
});
}
VerifyUser
ミドルウェア:
<?php
namespace App\Http\Middleware;
// Requirement
use Illuminate\Support\Facades\Auth;
use Closure;
class VerifyUser
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!Auth::check()){
return redirect('/login');
}
return $next($request);
}
}
の終わりにリダイレクト応答を追加 - 最後に>()に –
感謝を。しかし実際にリダイレクトする前に、私は '' Auth''にユーザ情報を保存し、後で '' Auth :: check''を通してユーザを認証したいと思っています。 – PS1212