{"id":28133,"date":"2021-05-21T11:49:00","date_gmt":"2021-05-21T08:49:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28133"},"modified":"2021-10-17T16:54:08","modified_gmt":"2021-10-17T13:54:08","slug":"sistema-de-registro-e-inicio-de-sesion-de-usuario-en-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/sistema-de-registro-e-inicio-de-sesion-de-usuario-en-laravel\/","title":{"rendered":"Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel"},"content":{"rendered":"<p>Laravel proporciona un sistema integrado de registro e inicio de sesi\u00f3n de usuario. La mayor\u00eda de los desarrolladores no conocen este sistema integrado (yo tambi\u00e9n fui uno de ellos). Cuando me enter\u00e9 de esta funci\u00f3n, me sorprendi\u00f3. Ahorra mucho tiempo al crear un sistema de inicio de sesi\u00f3n y registro desde cero.<\/p>\n<p>En este art\u00edculo, estudiamos el registro de usuarios y el sistema de inicio de sesi\u00f3n en Laravel, la funci\u00f3n incorporada proporcionada por Laravel.<\/p>\n<p>Como todos sabemos, el proceso de inicio de sesi\u00f3n y registro tiene el siguiente flujo que generalmente debe integrarse.<\/p>\n<ul>\n<li>El usuario crea una cuenta<\/li>\n<li>El enlace de confirmaci\u00f3n se enviar\u00e1 a la direcci\u00f3n de correo electr\u00f3nico del usuario.<\/li>\n<li>Una vez que el usuario hace clic en el enlace de confirmaci\u00f3n, se activan en su sistema.<\/li>\n<li>El usuario inicia sesi\u00f3n en su sitio web y puede acceder a las p\u00e1ginas<\/li>\n<\/ul>\n<p>Todos los pasos anteriores est\u00e1n cubiertos en Laravel. No es necesario escribir un c\u00f3digo para construir este sistema de creaci\u00f3n de usuarios.<\/p>\n<p>Dicho esto, echemos un vistazo al registro de usuario y al sistema de inicio de sesi\u00f3n en Laravel.<\/p>\n<h3>Empezando<\/h3>\n<p>Para comenzar, debe estar listo con el proyecto Laravel. Si no lo tiene, cr\u00e9elo ejecutando el comando:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>Aqu\u00ed &#8216;laravel-dev&#8217; es el nombre del proyecto Laravel. El usuario puede cambiar este nombre.<\/p>\n<p>A continuaci\u00f3n, debe integrar la autenticaci\u00f3n de Laravel. Dir\u00edgete al directorio ra\u00edz del proyecto en la terminal y ejecuta los siguientes comandos uno por uno:<\/p>\n<pre><code>composer require laravel\/ui --dev\nphp artisan ui vue --auth\nnpm install &amp;&amp; npm run dev\n<\/code><\/pre>\n<p>Estos comandos crear\u00e1n controladores de autenticaci\u00f3n como <code>LoginController.php<\/code>, <code>RegisterController.php<\/code>, etc, que se encuentra en el <code>app\/Http\/Controllers\/Auth<\/code>directorio. Tambi\u00e9n crea vistas <code>login.blade.php<\/code>, <code>register.blade.php<\/code>en <code>resources\/view\/auth<\/code>directorio.<\/p>\n<p>Los comandos anteriores tambi\u00e9n crean un <code>app.blade.php<\/code>archivo en el <code>resources\/views\/layouts<\/code>directorio. Esta vista es un dise\u00f1o b\u00e1sico para la aplicaci\u00f3n. Utiliza el framework Bootstrap CSS pero el usuario puede personalizarlo y cambiar el dise\u00f1o.<\/p>\n<p>Ejecute el comando de migraci\u00f3n que crear\u00e1 una tabla de &#8216;usuarios&#8217; en su base de datos.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Ahora, si ejecuta el proyecto Laravel en el navegador, ver\u00e1 los enlaces para el formulario de inicio de sesi\u00f3n y registro.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel\" ><\/a><\/p>\n<p>En esta etapa, los usuarios pueden crear su cuenta e iniciar sesi\u00f3n en el sitio web. Pero como mencion\u00e9 anteriormente, antes de que un usuario pueda acceder al sistema, deber\u00eda haber confirmado su cuenta.<\/p>\n<p>En el siguiente paso veremos c\u00f3mo realizar el proceso de verificaci\u00f3n de correo electr\u00f3nico de un usuario.<\/p>\n<h3>verificacion de email<\/h3>\n<p>Al crear un sistema de registro, cuando el usuario se registra, env\u00eda un enlace de activaci\u00f3n a los usuarios. Este enlace de activaci\u00f3n se utilizar\u00e1 para verificar la cuenta de usuario. Una vez que el usuario hace clic en un enlace de activaci\u00f3n, lo activamos. En otras palabras, despu\u00e9s de verificar la cuenta, el usuario puede navegar por las p\u00e1ginas de su aplicaci\u00f3n.<\/p>\n<p>Laravel proporciona un sistema integrado del proceso de verificaci\u00f3n de correo electr\u00f3nico para un usuario reci\u00e9n registrado. Con este sistema, un usuario registrado recibir\u00e1 un correo electr\u00f3nico con un enlace de activaci\u00f3n. Al activar la cuenta, el usuario podr\u00e1 acceder al sistema.<\/p>\n<p>Abra el <code>AppUser.php<\/code>archivo y aseg\u00farese de que el modelo &#8216;Usuario&#8217; implemente el <code>IlluminateContractsAuthMustVerifyEmail<\/code>contrato.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace App;\n\u00a0\nuse IlluminateContractsAuthMustVerifyEmail;\nuse IlluminateFoundationAuthUser as Authenticatable;\nuse IlluminateNotificationsNotifiable;\n\u00a0\nclass User extends Authenticatable implements MustVerifyEmail\n{\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0...\n}<\/code><\/pre>\n<p>\u00bfComo funciona? Si comprueba el archivo de migraci\u00f3n, la tabla &#8216;usuarios&#8217; contiene una <code>email_verified_at<\/code>columna. Esta columna se utilizar\u00e1 para verificar si el usuario ha activado su cuenta o no. Si la cuenta est\u00e1 activada, esta columna debe tener la fecha y hora de activaci\u00f3n.<\/p>\n<p>Cuando ejecuta el comando de autenticaci\u00f3n, crea una <code>AuthVerificationController<\/code>clase que tiene l\u00f3gica escrita para enviar enlaces de verificaci\u00f3n y verificar correos electr\u00f3nicos. El desarrollador puede comprobar este archivo. Para registrar las rutas necesarias para este controlador, escriba las siguientes rutas en el <code>routes\/web.php<\/code>archivo.<\/p>\n<pre><code>Auth::routes(['verify' =&gt; true]);<\/code><\/pre>\n<p>El usuario puede proteger sus rutas que deber\u00edan estar detr\u00e1s del inicio de sesi\u00f3n. Para proteger las rutas, debe aplicar <code>middleware('verified')<\/code>a esas rutas. Despu\u00e9s de esto, solo las cuentas verificadas pueden acceder a estas rutas protegidas.<\/p>\n<p>Puede escribir el c\u00f3digo para proteger la ruta de la siguiente manera:<\/p>\n<pre><code>Route::get('profile', function() {\n\u00a0\u00a0\u00a0\u00a0return '&lt;h1&gt;This is profile page&lt;\/h1&gt;';\n})-&gt;middleware('verified');<\/code><\/pre>\n<p>Si desea tener el control de d\u00f3nde redirigir al usuario despu\u00e9s de la verificaci\u00f3n, abra el <code>AuthVerificationController<\/code>archivo. El archivo tiene la variable <code>$redirectTo<\/code>que se utilizar\u00e1 para la redirecci\u00f3n. Cambie esta ruta seg\u00fan sus necesidades.<\/p>\n<pre><code>protected $redirectTo = '\/home';<\/code><\/pre>\n<h3>Inicio de sesi\u00f3n y registro de usuario<\/h3>\n<p>Ahora est\u00e1 listo para probar el sistema de inicio de sesi\u00f3n y registro de usuario. Como nos ocupamos del proceso de registro, su sistema deber\u00eda poder enviar un correo electr\u00f3nico. Puede utilizar el servidor SMTP de Gmail para enviar correos electr\u00f3nicos. Para obtener m\u00e1s detalles, lea nuestro art\u00edculo <a href=\"https:\/\/themewp.inform.click\/es\/envio-de-correo-electronico-a-traves-del-servidor-smtp-de-gmail-en-laravel\/\" title=\"Env\u00edo de correo electr\u00f3nico a trav\u00e9s del servidor SMTP de Gmail en Laravel\" >Env\u00edo de correo electr\u00f3nico a trav\u00e9s del servidor SMTP de Gmail en Laravel<\/a>.<\/p>\n<p>Inicie el servidor de desarrollo local con el comando:<\/p>\n<pre><code>php artisan serve<\/code><\/pre>\n<p>Cree una cuenta de usuario en la p\u00e1gina de registro aqu\u00ed: <a href=\"http:\/\/localhost:8000\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http: \/\/ localhost: 8000 \/ register<\/a><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel\" ><\/a><\/p>\n<p>Al enviar un formulario, recibir\u00e1 el enlace de verificaci\u00f3n en su correo electr\u00f3nico de la siguiente manera:<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel\" ><\/a><\/p>\n<p>Tenga en cuenta que Laravel le permite iniciar sesi\u00f3n en su cuenta incluso si a\u00fan no ha verificado la cuenta. Pero no puede acceder a la ruta protegida.<\/p>\n<p>He agregado middleware para la ruta <code>profile<\/code>. Sin verificar la cuenta, si intenta visitar la p\u00e1gina <a href=\"http:\/\/localhost:8000\/profile\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http: \/\/ localhost: 8000 \/ profile<\/a>, se redireccionar\u00e1 a la URL <a href=\"http:\/\/localhost:8000\/email\/verify\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http: \/\/ localhost: 8000 \/ email \/<\/a> verify.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20530-608200a2d1ee4.png\" alt=\"Sistema de registro e inicio de sesi\u00f3n de usuario en Laravel\" ><\/a><\/p>\n<p>Contin\u00fae y verifique su cuenta. Verifique la tabla de &#8216;usuarios&#8217; en la base de datos y ver\u00e1 una <code>email_verified_at<\/code>columna llena con la fecha y hora de activaci\u00f3n. Significa que ha verificado su cuenta correctamente. Ahora deber\u00eda poder acceder a rutas protegidas.<\/p>\n<p>Espero que entiendas c\u00f3mo usar el registro de usuario y el sistema de inicio de sesi\u00f3n en Laravel. Comparta sus pensamientos y sugerencias en el comentario a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/integracion-de-authorize-net-payment-gateway-en-laravel\/\" title=\"Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel\">Integraci\u00f3n de Authorize.Net Payment Gateway en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-crear-un-blog-con-laravel\/\" title=\"C\u00f3mo crear un blog con Laravel\">C\u00f3mo crear un blog con Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-crear-honeypot-para-combatir-el-spam-de-formularios-en-laravel\/\" title=\"C\u00f3mo crear Honeypot para combatir el spam de formularios en Laravel\">C\u00f3mo crear Honeypot para combatir el spam de formularios en Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo, estudiamos sobre el registro de usuarios y el sistema de inicio de sesi\u00f3n en Laravel. Laravel proporciona este sistema en la instalaci\u00f3n. Solo necesitamos extender esto<\/p>\n","protected":false},"author":1,"featured_media":22293,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[495],"tags":[849],"class_list":["post-28133","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=28133"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28133\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/22293"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}