tutorial personal generate español auth laravel-5.3

laravel-5.3 - personal - laravel passport tutorial español



Laravel 5.3 Passport JWT Authentication (3)

Anteriormente cuando estaba usando laravel 5.2, usé un paquete de terceros https://github.com/tymondesigns/jwt-auth/ para realizar la autenticación basada en JWT. Donde solo tuvimos que pasar el nombre de usuario y la contraseña para obtener un token.

Ahora, en la versión 5.3 con la introducción del pasaporte, deseo realizar una autenticación basada en JWT, pero el pasaporte requiere que especifique el client_id y el client_secret junto con el nombre de usuario y la contraseña. que no estaba allí en tymondesigns / jwt-auth.

Si hago una solicitud sin el client_id, arroja un error http://pix.toile-libre.org/upload/original/1482908288.png pero cuando paso el client_id y el client_secret, entonces funciona bien http://pix.toile-libre.org/upload/original/1482908143.png

¿Cómo puedo realizar una solicitud JWT en laravel 5.3 y el pasaporte con solo el nombre de usuario y la contraseña y sin especificar client_id y client_secret?


$ solicitud-> usuario (); no funcionaba para mí porque el middleware está configurado para la web, que también necesito + api. Los documentos no son claros sobre cómo controlar ambos escenarios.

Pude obtener detalles de los usuarios con el token Auth Authenticer +, y en Laravel:

use Illuminate/Support/Facades/Auth; Route::get(''/user'', function() { return Auth::guard(''api'')->user(); });


Así que, finalmente, estoy respondiendo a mi propia pregunta. Esperemos que esto ayude a alguien que enfrenta un problema similar.

La autenticación JWT se puede hacer usando el pasaporte Laravel 5.3, solo siga los siguientes pasos:

O sigue estos pasos:

  • compositor requiere laravel / pasaporte
  • agregue Laravel/Passport/PassportServiceProvider::class, a sus proveedores de aplicaciones
  • php artesano migrar
  • pasaporte php artesano: instalar
  • Agregue el rasgo HasApiTokens a su modelo de usuario
  • Pasaporte :: rutas (); en AppServiceProvider
  • Configurar el controlador de la API para el pasaporte

Una vez hecho esto, cree un UserController y agregue los siguientes métodos en él:

public function auth(Request $request) { $params = $request->only(''email'', ''password''); $username = $params[''email'']; $password = $params[''password'']; if(/Auth::attempt([''email'' => $username, ''password'' => $password])){ return /Auth::user()->createToken(''my_user'', []); } return response()->json([''error'' => ''Invalid username or Password'']); } public function index(Request $request) { return $request->user(); }

En rutas / api.php, agregue las siguientes rutas:

Route::post(''auth'', ''UserController@auth''); Route::group([''middleware'' => ''auth:api''], function(){ Route::resource(''user'', ''UserController@index''); });

Ahora haga una solicitud POST a http://localhost:8000/auth con la dirección de correo electrónico y la contraseña como se muestra en la captura de pantalla ( http://pix.toile-libre.org/upload/original/1483094937.png ) Esto se obtendrá En AccessToken , puede usar este token para realizar otras solicitudes en su aplicación con el encabezado de Authorization y el Bearer XXX donde xxx es el accessToken que recibió de / api / auth endpoint.

Ahora, realice una solicitud GET a /api/user con el encabezado de Authorization y el valor del token, esto devolverá los detalles del usuario autenticado. (por ejemplo: http://pix.toile-libre.org/upload/original/1483095018.png )

También he publicado estos pasos en mi blog en http://chatterjee.pw/larvel-passport-jwt-authentication/

¡Espero que esto ayude!


Si no está interesado en OAuth y Client, probablemente quiera usar la autenticación JWT pura, si es así, puede consultar este paquete:

https://github.com/miladrahimi/larajwt

Declara un nuevo controlador de autenticación llamado "jwt" para proteger sus rutas autenticadas, proporciona un servicio para generar jwt de sus usuarios, y algunas otras herramientas como el cierre de sesión, el almacenamiento en caché del modelo de usuario, los filtros para verificar las propiedades adicionales de los usuarios, etc.