Comparte:
Como implementar sanctum y fortify con Api
Hola espero que todos se encuentren muy bien, aquí la preguntas.
1- El archivo de configuración de fortify tiene un parámetro que se llama middleware, este por defecto tiene el middleware web, en este caso es necesario que se cambie por API cuando se va a utilizar la validadación por tokens con sanctum?
1.1 En caso de que se deba dejar el middleware web, es necesario pasar la cookie CSRF y como se haría esto, desde una aplicación aparte por ejemplo con angular?
2- Si deseo poner que para entrar a la ruta logout se deba estar autenticado es necesario que me envíen un token tipo bearer, como agrego este middleware en específico a esta ruta para que las otras sigan siendo públicas ya que para cerrar sesión es necesario que el usuario este autenticado.
2.2 La ruta logout tiene un response llamado logoutResponse como estoy trabajando con sanctum necesito darle las directrices de que elimine todos los tokens relacionados a este usuario hasta el momento de generar la acción, como lo ideal no es modificar los archivos de fortify que se encuentran en la ruta vendor, yo agregue la siguiente línea de código a logoutResponse pero el request al paracerer segun el codigo destroy de fortify crea otro token, y al no ser una ruta protegida no esta obteniendo el usuario mediante el token.
1.1 En caso de que se deba dejar el middleware web, es necesario pasar la cookie CSRF y como se haría esto, desde una aplicación aparte por ejemplo con angular?
2- Si deseo poner que para entrar a la ruta logout se deba estar autenticado es necesario que me envíen un token tipo bearer, como agrego este middleware en específico a esta ruta para que las otras sigan siendo públicas ya que para cerrar sesión es necesario que el usuario este autenticado.
2.2 La ruta logout tiene un response llamado logoutResponse como estoy trabajando con sanctum necesito darle las directrices de que elimine todos los tokens relacionados a este usuario hasta el momento de generar la acción, como lo ideal no es modificar los archivos de fortify que se encuentran en la ruta vendor, yo agregue la siguiente línea de código a logoutResponse pero el request al paracerer segun el codigo destroy de fortify crea otro token, y al no ser una ruta protegida no esta obteniendo el usuario mediante el token.
namespace App\Http\Responses;
use Illuminate\Support\Facades\Auth;
use Laravel\Fortify\Contracts\LogoutResponse as FortifyLogoutResponse;
class LogoutResponse implements FortifyLogoutResponse
{
public function toResponse($request)
{
Auth::user()->tokens()->delete();
return response()->json([
'message' => 'logout successfully',
]);
}
}