J'ai récupéré Passport aujourd'hui. Même si j'ai rencontré de nombreux pièges, il est toujours assez simple à utiliser~
token
Solution :
Redéfinissez-le dans votre
: AuthServiceProvider
Passport::routes(function (RouteRegistrar $router) { $router->forAccessTokens(); }, ['prefix' => 'api']);
Token
de jwt-auth peut facilement générer JWTAuth::fromUser($user);
, mais il ne semble pas y avoir de méthode toute faite dans Passport. token
Solution :
Après avoir enregistré le compte, demandez activement à oauth/token
public function register(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()){ return response()->json($validator->errors()); } event(new Registered($user = $this->create($request->all()))); $client = \DB::table('oauth_clients')->where('password_client', 1)->first(); $request->request->add([ 'username' => $user->email, 'password' => $request->password, 'grant_type' => 'password', 'client_id' => $client->id, 'client_secret' => $client->secret, 'scope' => '*' ]); $proxy = Request::create( 'oauth/token', 'POST' ); return Route::dispatch($proxy); }de s'exécuter à nouveau et obtenez le retour de
{ "token_type": "Bearer", "expires_in": 1296000, "access_token": "xxx", "refresh_token": "xxx" }, une solution parfaite.
Solution :
Ajoutez la méthode suivante à votre modèle utilisateur
public function findForPassport($login) { return User::orWhere('email', $login)->orWhere('mobile', $login)->first(); }
token
web
Pas étonnant que ce soit comme ça auth
Ajoutez
à l'en-tête de votre demande pour résoudre le problème Accept:application/json
Par exemple. :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!