{"id":665,"date":"2024-11-07T11:11:28","date_gmt":"2024-11-07T11:11:28","guid":{"rendered":"https:\/\/alexpadulles.es\/blog\/?p=665"},"modified":"2025-01-20T22:32:39","modified_gmt":"2025-01-20T22:32:39","slug":"verificar-email-api-laravel","status":"publish","type":"post","link":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/","title":{"rendered":"Verificar Email API Laravel"},"content":{"rendered":"<h2><\/h2>\n<p>En este art\u00edculo, vamos a <strong>Verificar Email API Laravel<\/strong> para\u00a0 que funcione a la perfecci\u00f3n con el frontend. La idea es simple: cuando el usuario hace clic en el enlace de verificaci\u00f3n que le enviamos por correo, queremos que sea redirigido a una p\u00e1gina de \u00e9xito en la aplicaci\u00f3n frontend, en lugar de llevarlo a la pantalla de inicio de sesi\u00f3n o a cualquier otro sitio que pueda generar confusi\u00f3n.<\/p>\n<p>Este enfoque es ideal para proyectos donde no usamos las vistas de Laravel tradicionales (como <a href=\"https:\/\/laravel.com\/docs\/11.x\/blade\" target=\"_blank\" rel=\"noopener\">Blade<\/a>), sino que trabajamos \u00fanicamente con <a href=\"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/\" target=\"_blank\" rel=\"noopener\">APIs<\/a> que interact\u00faan directamente con el frontend. Aqu\u00ed te explicar\u00e9 c\u00f3mo hacer que tu API maneje la verificaci\u00f3n del email de una manera fluida y sin vueltas, logrando una experiencia mucho m\u00e1s intuitiva para el usuario.<\/p>\n<p>\u00bfNecesitas un\u00a0<strong>programador\u00a0<\/strong>?\u00a0<a href=\"https:\/\/alexpadulles.es\/#contact\" target=\"_blank\" rel=\"noopener\">Contacta conmigo<\/a><\/p>\n<h2>Problema Com\u00fan en <strong>Verificar Email API Laravel<\/strong><\/h2>\n<p>Un problema frecuente es que, al hacer clic en el enlace de verificaci\u00f3n, el usuario es redirigido a la p\u00e1gina de inicio de sesi\u00f3n en lugar de ser marcado como verificado y redirigido al frontend. Este inconveniente se debe a que la ruta de verificaci\u00f3n requiere autenticaci\u00f3n. La soluci\u00f3n consiste en manejar la verificaci\u00f3n sin exigir que el usuario est\u00e9 autenticado en el momento de hacer clic en el enlace.<\/p>\n<h2>Soluci\u00f3n Propuesta<\/h2>\n<p>Para implementar la verificaci\u00f3n de email sin necesidad de autenticaci\u00f3n, seguiremos estos pasos:<\/p>\n<ol>\n<li>Configurar el modelo <code>User<\/code> para que implemente <code>MustVerifyEmail<\/code>.<\/li>\n<li>Crear el controlador de autenticaci\u00f3n (<code>AuthController<\/code>) para registrar usuarios y enviar la notificaci\u00f3n de verificaci\u00f3n.<\/li>\n<li>Definir las rutas para la verificaci\u00f3n y el reenv\u00edo del enlace de verificaci\u00f3n en <code>api.php<\/code>.<\/li>\n<li>Crear el controlador <code>VerifyEmailController<\/code> para manejar la verificaci\u00f3n sin autenticaci\u00f3n.<\/li>\n<\/ol>\n<h2>Implementaci\u00f3n Paso a Paso para <strong>Verificar Email API Laravel<\/strong><\/h2>\n<h3>1. Configurar el Modelo <code>User<\/code><\/h3>\n<p>Para implementar\u00a0 <strong>Verificar Email API Laravel <\/strong>Aseg\u00farate de que el modelo <code>User<\/code> implemente <code>MustVerifyEmail<\/code> y de tener configurado <code>HasApiTokens<\/code> para manejar los tokens de acceso.<\/p>\n<pre><code class=\"php\">\r\nnamespace App\\Models;\r\n\r\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\r\nuse Illuminate\\Database\\Eloquent\\Factories\\HasFactory;\r\nuse Illuminate\\Foundation\\Auth\\User as Authenticatable;\r\nuse Illuminate\\Notifications\\Notifiable;\r\nuse Laravel\\Passport\\HasApiTokens;\r\n\r\nclass User extends Authenticatable implements MustVerifyEmail\r\n{\r\n    use HasFactory, Notifiable, HasApiTokens;\r\n\r\n    protected $fillable = [\r\n        'name',\r\n        'email',\r\n        'password',\r\n    ];\r\n\r\n    protected $hidden = [\r\n        'password',\r\n        'remember_token',\r\n    ];\r\n\r\n    protected $casts = [\r\n        'email_verified_at' =&gt; 'datetime',\r\n    ];\r\n}\r\n\r\n<\/code><\/pre>\n<div id=\"attachment_670\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" aria-describedby=\"caption-attachment-670\" class=\"wp-image-670 size-full\" src=\"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.49.30-An-illustration-showing-the-Laravel-email-verification-API-process-with-a-simple-and-modern-design.-Display-a-sequence-from-a-user-receiving-a-verific.webp\" alt=\"Verificar Email API Laravel\" width=\"1024\" height=\"1024\" srcset=\"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.49.30-An-illustration-showing-the-Laravel-email-verification-API-process-with-a-simple-and-modern-design.-Display-a-sequence-from-a-user-receiving-a-verific.webp 1024w, https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.49.30-An-illustration-showing-the-Laravel-email-verification-API-process-with-a-simple-and-modern-design.-Display-a-sequence-from-a-user-receiving-a-verific-300x300.webp 300w, https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.49.30-An-illustration-showing-the-Laravel-email-verification-API-process-with-a-simple-and-modern-design.-Display-a-sequence-from-a-user-receiving-a-verific-150x150.webp 150w, https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.49.30-An-illustration-showing-the-Laravel-email-verification-API-process-with-a-simple-and-modern-design.-Display-a-sequence-from-a-user-receiving-a-verific-768x768.webp 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-670\" class=\"wp-caption-text\">Verificar Email API Laravel<\/p><\/div>\n<pre><code class=\"php\">\r\n<\/code><\/pre>\n<h3>2. Crear el Controlador de Autenticaci\u00f3n<\/h3>\n<p>En <code>AuthController<\/code>, configuramos la l\u00f3gica de registro y login de usuario, generamos un token de acceso para cada usuario y enviamos la notificaci\u00f3n de verificaci\u00f3n.<\/p>\n<pre><code class=\"php\">\r\nnamespace App\\Http\\Controllers;\r\n\r\nuse App\\Models\\User;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Auth\\Events\\Registered;\r\n\r\nclass AuthController extends Controller\r\n{\r\n    public function register(Request $request)\r\n    {\r\n        $validatedData = $request-&gt;validate([\r\n            'name' =&gt; 'required|max:55',\r\n            'email' =&gt; 'email|required|unique:users',\r\n            'password' =&gt; 'required|confirmed'\r\n        ]);\r\n\r\n        $validatedData['password'] = bcrypt($request-&gt;password);\r\n\r\n        $user = User::create($validatedData);\r\n\r\n        event(new Registered($user));\r\n\r\n        $accessToken = $user-&gt;createToken('authToken')-&gt;accessToken;\r\n\r\n        return response(['user' =&gt; $user, 'access_token' =&gt; $accessToken]);\r\n    }\r\n\r\n    public function login(Request $request)\r\n    {\r\n        $loginData = $request-&gt;validate([\r\n            'email' =&gt; 'email|required',\r\n            'password' =&gt; 'required'\r\n        ]);\r\n\r\n        if (!auth()-&gt;attempt($loginData)) {\r\n            return response(['message' =&gt; 'Invalid Credentials']);\r\n        }\r\n\r\n        $accessToken = auth()-&gt;user()-&gt;createToken('authToken')-&gt;accessToken;\r\n\r\n        return response(['user' =&gt; auth()-&gt;user(), 'access_token' =&gt; $accessToken]);\r\n    }\r\n}\r\n<\/code><\/pre>\n<h3>3. Definir las Rutas de Verificaci\u00f3n y Reenv\u00edo de Enlace<\/h3>\n<p>En el archivo <code>api.php<\/code>, definimos la ruta de verificaci\u00f3n de email y el reenv\u00edo del enlace de verificaci\u00f3n. La ruta de verificaci\u00f3n no tiene el middleware <code>auth<\/code>, por lo que no requiere autenticaci\u00f3n.<\/p>\n<pre><code class=\"php\">\r\n\/\/ Verify email\r\nRoute::get('\/email\/verify\/{id}\/{hash}', [VerifyEmailController::class, '__invoke'])\r\n    -&gt;middleware(['signed', 'throttle:6,1'])\r\n    -&gt;name('verification.verify');\r\n\r\n\/\/ Resend link to verify email\r\nRoute::post('\/email\/verify\/resend', function (Request $request) {\r\n    $request-&gt;user()-&gt;sendEmailVerificationNotification();\r\n    return back()-&gt;with('message', 'Verification link sent!');\r\n})-&gt;middleware(['auth:api', 'throttle:6,1'])-&gt;name('verification.send');\r\n<\/code><\/pre>\n<h3>4. Crear el Controlador de Verificaci\u00f3n de Email<\/h3>\n<p>Finalmente, creamos <code>VerifyEmailController<\/code> para verificar el email del usuario sin autenticaci\u00f3n. Este controlador busca al usuario por su <code>id<\/code>, y si no ha sido verificado, marca el email como verificado y redirige al frontend a una p\u00e1gina de \u00e9xito o error.<\/p>\n<pre><code class=\"php\">\r\nnamespace App\\Http\\Controllers;\r\n\r\nuse Illuminate\\Auth\\Events\\Verified;\r\nuse Illuminate\\Http\\RedirectResponse;\r\nuse Illuminate\\Http\\Request;\r\nuse Illuminate\\Routing\\Controller;\r\nuse App\\Models\\User;\r\n\r\nclass VerifyEmailController extends Controller\r\n{\r\n    public function __invoke(Request $request): RedirectResponse\r\n    {\r\n        $user = User::find($request-&gt;route('id'));\r\n\r\n        if ($user-&gt;hasVerifiedEmail()) {\r\n            return redirect(env('FRONT_URL') . '\/email\/verify\/already-success');\r\n        }\r\n\r\n        if ($user-&gt;markEmailAsVerified()) {\r\n            event(new Verified($user));\r\n        }\r\n\r\n        return redirect(env('FRONT_URL') . '\/email\/verify\/success');\r\n    }\r\n}\r\n<\/code><\/pre>\n<h2>Explicaci\u00f3n de la Soluci\u00f3n<\/h2>\n<ul>\n<li>La ruta de verificaci\u00f3n de email no requiere autenticaci\u00f3n, lo que permite a los usuarios verificar su email sin tener que iniciar sesi\u00f3n.<\/li>\n<li>El controlador <code>VerifyEmailController<\/code> utiliza el <code>id<\/code> en la URL para buscar al usuario y, si no est\u00e1 verificado, marca el email como verificado y lanza el evento <code>Verified<\/code>.<\/li>\n<li>Redirigimos al frontend a una p\u00e1gina de \u00e9xito o a una de mensaje si el usuario ya hab\u00eda verificado su email.<\/li>\n<\/ul>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Esta implementaci\u00f3n permite que el usuario verifique su email a trav\u00e9s de un enlace enviado en su bandeja de entrada sin necesidad de autenticarse. La soluci\u00f3n es ideal para aplicaciones frontend que consumen una API Laravel y requieren flujos de autenticaci\u00f3n simplificados.<\/p>\n<h3>Contacto<\/h3>\n<p>Si necesitas servicios de desarrollo para tu empresa , estoy aqu\u00ed para ayudarte. Ofrezco soluciones personalizadas y de alta calidad para satisfacer tus necesidades. Para m\u00e1s informaci\u00f3n o para discutir tu proyecto, cont\u00e1ctame a traves del siguiente bot\u00f3n<\/p>\n<p style=\"text-align: center;\"><button translate=\"no\" class=\"btg-button btg-button-1\" data-btnid=\"1\" data-url=\"https:\/\/alexpadulles.es\/#contact\" data-action=\"link\" data-target=\"_self\">Contacta con nosotros<span class=\"fas fa-message btg-icon \"><\/span><\/button>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, vamos a Verificar Email API Laravel para\u00a0 que funcione a la perfecci\u00f3n con&#8230;<\/p>\n","protected":false},"author":1,"featured_media":669,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[165,166],"class_list":["post-665","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-api-laravel-11","tag-verificar-email-api-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Verificar Email API Laravel - Blog Desarrrollo web Alex Padulles<\/title>\n<meta name=\"description\" content=\"Implementar la Verificar Email API Laravel. Haciendo clic en el enlace de verificaci\u00f3n, el usuario ser\u00e1 redirigido a una p\u00e1gina de \u00e9xito\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Verificar Email API Laravel - Blog Desarrrollo web Alex Padulles\" \/>\n<meta property=\"og:description\" content=\"Implementar la Verificar Email API Laravel. Haciendo clic en el enlace de verificaci\u00f3n, el usuario ser\u00e1 redirigido a una p\u00e1gina de \u00e9xito\" \/>\n<meta property=\"og:url\" content=\"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Desarrrollo web Alex Padulles\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-07T11:11:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-20T22:32:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.46.56-Illustration-of-a-verification-email-process-in-a-Laravel-API-context.-Depict-a-user-clicking-an-email-verification-link-represented-by-a-modern-web-.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Alex Padull\u00e9s\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@alexpadulles\" \/>\n<meta name=\"twitter:site\" content=\"@alexpadulles\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Padull\u00e9s\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Verificar Email API Laravel - Blog Desarrrollo web Alex Padulles","description":"Implementar la Verificar Email API Laravel. Haciendo clic en el enlace de verificaci\u00f3n, el usuario ser\u00e1 redirigido a una p\u00e1gina de \u00e9xito","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/","og_locale":"es_ES","og_type":"article","og_title":"Verificar Email API Laravel - Blog Desarrrollo web Alex Padulles","og_description":"Implementar la Verificar Email API Laravel. Haciendo clic en el enlace de verificaci\u00f3n, el usuario ser\u00e1 redirigido a una p\u00e1gina de \u00e9xito","og_url":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/","og_site_name":"Blog Desarrrollo web Alex Padulles","article_published_time":"2024-11-07T11:11:28+00:00","article_modified_time":"2025-01-20T22:32:39+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.46.56-Illustration-of-a-verification-email-process-in-a-Laravel-API-context.-Depict-a-user-clicking-an-email-verification-link-represented-by-a-modern-web-.webp","type":"image\/webp"}],"author":"Alex Padull\u00e9s","twitter_card":"summary_large_image","twitter_creator":"@alexpadulles","twitter_site":"@alexpadulles","twitter_misc":{"Written by":"Alex Padull\u00e9s","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#article","isPartOf":{"@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/"},"author":{"name":"Alex Padull\u00e9s","@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32"},"headline":"Verificar Email API Laravel","datePublished":"2024-11-07T11:11:28+00:00","dateModified":"2025-01-20T22:32:39+00:00","mainEntityOfPage":{"@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/"},"wordCount":649,"commentCount":0,"publisher":{"@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32"},"image":{"@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.46.56-Illustration-of-a-verification-email-process-in-a-Laravel-API-context.-Depict-a-user-clicking-an-email-verification-link-represented-by-a-modern-web-.webp","keywords":["API laravel 11","Verificar Email API Laravel"],"articleSection":["laravel"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/","url":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/","name":"Verificar Email API Laravel - Blog Desarrrollo web Alex Padulles","isPartOf":{"@id":"https:\/\/alexpadulles.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#primaryimage"},"image":{"@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.46.56-Illustration-of-a-verification-email-process-in-a-Laravel-API-context.-Depict-a-user-clicking-an-email-verification-link-represented-by-a-modern-web-.webp","datePublished":"2024-11-07T11:11:28+00:00","dateModified":"2025-01-20T22:32:39+00:00","description":"Implementar la Verificar Email API Laravel. Haciendo clic en el enlace de verificaci\u00f3n, el usuario ser\u00e1 redirigido a una p\u00e1gina de \u00e9xito","breadcrumb":{"@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#primaryimage","url":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.46.56-Illustration-of-a-verification-email-process-in-a-Laravel-API-context.-Depict-a-user-clicking-an-email-verification-link-represented-by-a-modern-web-.webp","contentUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/11\/DALL\u00b7E-2024-11-06-23.46.56-Illustration-of-a-verification-email-process-in-a-Laravel-API-context.-Depict-a-user-clicking-an-email-verification-link-represented-by-a-modern-web-.webp","width":1024,"height":1024,"caption":"Verificar Email API Laravel"},{"@type":"BreadcrumbList","@id":"https:\/\/alexpadulles.es\/blog\/verificar-email-api-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/alexpadulles.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Verificar Email API Laravel"}]},{"@type":"WebSite","@id":"https:\/\/alexpadulles.es\/blog\/#website","url":"https:\/\/alexpadulles.es\/blog\/","name":"Desarrollor web Alex padulles","description":"Bienvenidos a mi blog, tu portal de referencia en tecnolog\u00eda. Con a\u00f1os de experiencia en programaci\u00f3n y desarrollo web, ofrecemos soluciones innovadoras y personalizadas para todos tus proyectos digitales.","publisher":{"@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/alexpadulles.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32","name":"Alex Padull\u00e9s","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png","url":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png","contentUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png","width":602,"height":481,"caption":"Alex Padull\u00e9s"},"logo":{"@id":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png"},"sameAs":["https:\/\/alexpadulles.es\/blog","https:\/\/x.com\/alexpadulles"]}]}},"_links":{"self":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts\/665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/comments?post=665"}],"version-history":[{"count":3,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts\/665\/revisions"}],"predecessor-version":[{"id":672,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts\/665\/revisions\/672"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/media\/669"}],"wp:attachment":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/media?parent=665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/categories?post=665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/tags?post=665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}