Access Tokens
Proteger rutas: Client Grant Type Tokens
Proporcionar acceso a un cliente válido en el sistema sin necesidad de que esté autorizado por un usuario, así cualquier cliente registrado va a poder acceder a esas rutas. Sin embargo, al no tener autorización de un usuario específico, no se tiene un control sobre si realmente por medio de ese token se puede hacer determinada acción.
Entonces para realizar las peticiones se requiere únicamente de las credenciales del cliente
Registrar middleware client_credentials en app/Http/Kernel.php
Proteger las rutas básicas del sistema: lista de productos, info de un producto, etc, para esto se puede
Registrar middleware en controladores que lo requieran para métodos index y/o show según sea el caso:
o si se desea proteger todos los métodos de los controladores, hacerlo directamente en el archivo de rutas
Al enviar petición a alguna de las rutas protegidas obtenemos:
Para obtener autorización se debe usar un cliente válido en la API para obtener un access token:
Crear cliente
Nota: no es necesario asignar a un usuario, se puede colocar cualquier cosa (como 0)
Obtener access token para usuario creado
Hacer post a la ruta oauth/token con client_id y client_secret
Usar token al hacer peticiones, enviarlo con la cabecera Authorization y el método Bearer seguido de un espacio y el token
Proteger rutas: Otros Grant Type Tokens
En este caso, las peticiones sean realizadas con un token que esté relacionado con un usuario válido en el sistema. Existen varios tokens que cumplen con esta condición: password token, personal token (de cada usuario), token implícito, y el tradicional de código de autorización.
En el controalador base del sistema ApiController, en el constructor usar un middeware
En los otros controladores (que no hacen uso del client credentials) llamar al constructor padre (antes descrito) para implementar el middleware
Para los que hacen uso de client credentials en algunos métodos, proteger los restantes con auth:api
En UserController, se debe exceptuar de validaciones al método verify, pues este es llamado cuando el usuario hace click sobre el enlace de verificación que le fue enviado al correo y no hay manera de que envíe algún token
Password Grant Tokens
Para obtener un access token con información del usuario, se requiere información tanto del cliente como del usuario directamente en el cuerpo de la petición.
Crear cliente con tipo password
Obtener access token para usuario creado
Usar token para las peticiones
Personal Access Tokens
El access token personal nunca expira, se recomienda ser usado con fines de prueba o para proporcionar cierto acceso al usuario.
Crear cliente con tipo password
Access Token por medio de Código de Autorización
El usuario se autentica en el sistema y en caso de que autorice y su autenticación sea correcta, el cliente podrá obtener el access token sin necesidad de conocer los datos del usuario.
Es el grant type más utilizado por Facebook, Twitter, etc.
Last updated
Was this helpful?