Authentication
Realize a autenticação de usuários e forneça conteúdo personalizado e seguro para grupos de usuários específicos.
A autenticação de usuário é de fato um recurso essencial no desenvolvimento de sistemas modernos. Ela desempenha um papel fundamental ao restringir o acesso a determinadas partes do sistema ou ao fornecer funcionalidades específicas com base no nível de permissão do usuário.
A autenticação garante que apenas usuários autorizados possam acessar recursos ou executar determinadas ações dentro do sistema. Isso é alcançado por meio de identificação e verificação da identidade do usuário. Normalmente, os usuários são solicitados a fornecer credenciais, como nome de usuário e senha, que são então validadas em relação a um conjunto de informações armazenadas.
Classe Auth
A classe Auth
é responsável pela autenticação de usuários no Hello. Ela fornece métodos para realizar login, verificar sessões de usuário, destruir sessões existentes, obter dados do usuário autenticado e registrar novos usuários.
Namespace
A classe Auth
está definida no namespace Kernel\Http
.
Dependências
A classe Auth
depende das seguintes classes e namespaces:
Kernel\Http\Session
: Classe responsável por gerenciar as sessões do sistema.App\Models\UserModel
: Classe representando o modelo de dados de usuário.Kernel\Support\ObjectDefault
: Classe para criar um objeto padrão com os dados da sessão.Exception
: Classe para lançar exceções personalizadas.
login(array $data, function $success = null)
login(array $data, function $success = null)
Este método estático é usado para realizar o login de um usuário. Ele recebe um array associativo $data
contendo as informações de login do usuário, como email e senha. O parâmetro $success
é opcional e permite a execução de uma função anônima em caso de sucesso no login.
Obs: Este método lança uma exceção com código 100 quando a senha fornecida é inválida e uma exceção com código 200 quando o usuário não é encontrado.
Route::post('login',function(Request $request){
$login = array('email','password');
$login = $request->only($login);
Auth::login($login,fn() => redirect('dashboard'));
});
Explicação passo a passo do código acima:
Quando uma requisição POST é feita para a rota '/login', a função anônima é executada.
Dentro da função, uma variável chamada
$login
é definida como um array contendo as chaves 'email' e 'password'.Em seguida, é feita uma chamada ao método
only()
do objeto$request
, passando o array$login
como argumento. Esse método retorna um novo array contendo apenas as chaves 'email' e 'password' e seus respectivos valores presentes na requisição.O próximo passo é chamar o método
login()
da classeAuth
, passando o array de login e uma função anônima como argumentos. O métodologin()
é responsável por autenticar o usuário.Se a autenticação for bem-sucedida, ou seja, se as informações de login forem válidas, a função anônima é executada. Nesse caso, a função redireciona o usuário para a rota '/dashboard'.
false | object check(string $role = null)
false | object check(string $role = null)
Este método estático verifica a existência de uma sessão de usuário e, opcionalmente, verifica se o usuário possui uma função específica ($role). Se a verificação for inválida, o método retornará false
. Caso contrário, o método retornará um objeto contendo todos os valores armazenados na sessão do usuário atualmente autenticado.
void destroy()
void destroy()
Este método estático destrói uma sessão de usuário existente. Remove todas as chaves da sessão, exceto a chave 'np_csrf_token'.
int register(array $data)
O método estático register()
é responsável por registrar um novo usuário no sistema. Ele recebe um array $data
contendo as informações necessárias para criar o usuário. Se não ocorrer nenhuma exceção durante o processo, o método retornará o ID do usuário recém-registrado.
$data
: Um array associativo contendo os dados do usuário a serem registrados. É obrigatório incluir as chaves name
, email
e password
. Outros campos opcionais podem ser adicionados conforme necessário, sendo importante consultar a estrutura da tabela SQL do SGBD utilizado ou o arquivo de classe de modelo de usuários em app/Models/UserModel.php
para verificar os campos disponíveis e suas respectivas propriedades.
OBS: O método pode lançar os seguintes códigos de exceções, caso ocorram condições específicas:
100 - É lançada se o formato do endereço de e-mail fornecido não for válido.
200 - É lançada se o nome fornecido tiver menos de dois caracteres.
300 - É lançada se a senha não atender aos requisitos necessários.
400 - É lançada se o endereço de e-mail fornecido já estiver em uso no sistema.
object user()
O método estático user()
disponibiliza todos os dados de sessão do usuário atual. No entanto, ele é considerado um pouco redundante, pois o método check()
já retorna os dados de sessão em caso de sucesso. A diferença é que o método user()
não possui critérios de retorno, ou seja, ele retorna os dados independentemente do resultado da verificação podendo retornar dados de sessão existente que não esteja relacionado diretamente com os dados do modelo de usuários.
Last updated