Dans Laravel Passport, après avoir obtenu le jeton d'accès du serveur, capable d'accéder aux informations utilisateur du client. Maintenant, je suis coincé avec la façon de le rediriger vers le tableau de bord client?Laravel 5.4 Passeport - Comment rediriger vers le tableau de bord client après avoir obtenu des informations d'utilisateur à partir du jeton d'accès
Voici ma fonction de rappel:
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);
});
Remarque: Avant la redirection vers Dashboard, souhaitez stocker les informations de l'utilisateur dans le Auth
et veut plus tard de vérifier tous les parcours à travers le middleware VarifyUser
. Cela authentifiant l'utilisateur à travers 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
middleware:
<?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);
}
}
vous pouvez utiliser redirect() -> à() à la fin –
Merci. Mais en fait, avant la redirection, je veux stocker les informations de l'utilisateur dans '' Auth'' et plus tard vouloir authentifier l'utilisateur par '' Auth :: check''. – PS1212