Sistema de Registro de Usuário e Login no Laravel
O Laravel fornece sistema de login e registro de usuário embutido. A maioria dos desenvolvedores não conhece esse sistema embutido (eu também fui um deles). Quando soube desse recurso, fiquei surpreso. Ele economiza muito tempo com a criação de um sistema de login e registro do zero.
Neste artigo, estudamos o sistema de registro e login do usuário no Laravel – o recurso integrado fornecido pelo próprio Laravel.
Como todos sabemos, o processo de login e registro tem o fluxo abaixo que geralmente precisa ser integrado.
- O usuário cria uma conta
- O link de confirmação será enviado no endereço de e-mail do usuário
- Assim que o usuário clicar no link de confirmação, eles serão ativados em seu sistema.
- O usuário faz login no seu site e pode acessar as páginas
Todas as etapas acima são abordadas no Laravel. Você não precisa escrever um código para construir este sistema de criação de usuário.
Dito isso, vamos dar uma olhada no sistema de registro e login do usuário no Laravel
Começando
Para começar, você deve estar pronto com o projeto Laravel. Se você não tiver, crie-o executando o comando:
composer create-project --prefer-dist laravel/laravel laravel-dev
Aqui, ‘laravel-dev’ é o nome do projeto Laravel. O usuário pode alterar este nome.
Em seguida, você deve integrar a autenticação do Laravel. Vá até o diretório raiz do projeto no terminal e execute os comandos abaixo um por um:
composer require laravel/ui --dev
php artisan ui vue --auth
npm install && npm run dev
Estes comandos irá criar controladores de autenticação como LoginController.php
, RegisterController.php
, etc, que você vai encontrar no app/Http/Controllers/Auth
diretório. Ele também cria visualizações login.blade.php
, register.blade.php
no resources/view/auth
diretório.
Os comandos acima também criam um app.blade.php
arquivo no resources/views/layouts
diretório. Esta visualização é um layout básico para o aplicativo. Ele usa a estrutura CSS do Bootstrap, mas o usuário pode personalizá-la e alterar o design.
Execute o comando de migração que criará uma tabela de ‘usuários’ em seu banco de dados.
php artisan migrate
Agora, se você executar o projeto Laravel no navegador, verá os links para login e formulário de registro.
Nesta fase, os usuários podem criar sua conta e fazer login no site. Mas como mencionei acima, antes que um usuário possa acessar o sistema, ele deve ter confirmado sua conta.
Na próxima etapa, veremos como realizar o processo de verificação de e-mail de um usuário.
verificação de e-mail
Ao construir um sistema de registro, quando o usuário se inscreve, você envia um link de ativação aos usuários. Este link de ativação será usado para verificar a conta do usuário. Uma vez, o usuário clica em um link de ativação, então o tornamos ativo. Em outras palavras, após verificar se o usuário da conta pode navegar pelas páginas de seu aplicativo.
O Laravel fornece um sistema embutido de processo de verificação de e-mail para um usuário recém-registrado. Usando este sistema, um usuário registrado receberá um e-mail com um link de ativação. Ao ativar a conta, o usuário poderá acessar o sistema.
Abra o AppUser.php
arquivo e certifique-se de que o modelo ‘Usuário’ implementa o IlluminateContractsAuthMustVerifyEmail
contrato.
<?php
namespace App;
use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
class User extends Authenticatable implements MustVerifyEmail
{
...
...
}
Como funciona? Se você verificar o arquivo de migração, a tabela ‘usuários’ contém uma email_verified_at
coluna. Esta coluna será usada para verificar se o usuário ativou sua conta ou não. Se a conta estiver ativada, esta coluna deve conter a data e hora da ativação.
Quando você executa o comando de autenticação, ele cria uma AuthVerificationController
classe que possui uma lógica escrita para enviar links de verificação e verificar emails. O desenvolvedor pode verificar este arquivo. Para registrar as rotas necessárias para este controlador, escreva as rotas abaixo no routes/web.php
arquivo.
Auth::routes(['verify' => true]);
O usuário pode proteger suas rotas, que devem estar por trás do login. Para proteger as rotas, você precisa se inscrever middleware('verified')
nessas rotas. Depois disso, essas rotas protegidas podem ser acessadas apenas por contas verificadas.
Você pode escrever o código para proteger a rota da seguinte maneira:
Route::get('profile', function() {
return '<h1>This is profile page</h1>';
})->middleware('verified');
Se você deseja ter controle de para onde redirecionar o usuário após a verificação, abra o AuthVerificationController
arquivo. O arquivo possui a variável $redirectTo
que será usada para redirecionamento. Altere esta rota de acordo com sua necessidade.
protected $redirectTo = '/home';
Login e registro do usuário
Agora você está pronto para testar o sistema de login e registro do usuário. Como estamos lidando com o processo de inscrição, seu sistema deverá ser capaz de enviar um e-mail. Você pode usar o servidor SMTP do Gmail para enviar e-mails. Para mais detalhes, leia nosso artigo Enviando e-mail via servidor SMTP do Gmail no Laravel.
Inicie o servidor de desenvolvimento local usando o comando:
php artisan serve
Crie uma conta de usuário na página de registro aqui – http: // localhost: 8000 / register
Após o envio de um formulário, você receberá o link de verificação em seu e-mail da seguinte forma:
Observe que o Laravel permite que você faça login na sua conta mesmo que ainda não tenha verificado a conta. Mas você não pode acessar a rota protegida.
Eu adicionei middleware para a rota profile
. Sem verificar a conta, se você tentar visitar a página http: // localhost: 8000 / profile, ele será redirecionado para a URL http: // localhost: 8000 / email / verify.
Vá em frente e verifique sua conta. Verifique a tabela ‘usuários’ no banco de dados e você verá a email_verified_at
coluna preenchida com a data e hora da ativação. Isso significa que você verificou sua conta com sucesso. Agora você deve conseguir acessar as rotas protegidas.
Espero que você entenda como usar o sistema de registro e login de usuário no Laravel. Por favor, compartilhe suas idéias e sugestões no comentário abaixo.
Artigos relacionados
- Authorize.Net Payment Gateway Integration no Laravel
- Como criar um blog com o Laravel
- Como Criar Honeypot para Combate com Formulário de Spam no Laravel