Construir nosso login do aplicativo Ruby on Rails

Índice
Em nossas aplicações web quase sempre teremos que cadastrar usuários, desta forma teremos membros de nossas lojas, blogs, comunidades virtuais, sistemas administrativos, etc. Para que o registro seja eficaz e útil, esses usuários devem ser capazes de se autenticar para poder inserir partes que foram criadas para usuários registrados, como visualizar seu perfil, gerenciar suas mensagens, fazer compras, escrever artigos, etc.
O log-in é a parte vital da nossa aplicação, permite-nos separar o privado do público, permite-nos saber qual o perfil de cada utilizador que entra e assim decidir o que pode ver ou não.
Para que nossa aplicação tenha esta funcionalidade, precisamos de uma ação no controlador que nos permita autenticar o usuário comparando seu nome de usuário e senha com o que temos no banco de dados, então uma vez que isso aconteça devemos salvar na sessão alguns valores que nos permitem saber a todo momento quem está logado e qual perfil e permissões eles possuem, claro que o último depende muito do design de nossa aplicação.
Agora devemos saber como gerar um controlador e tudo relacionado ao console trilhos, então veremos diretamente o controlador e seu conteúdo, bem como a lógica por trás dele:
 def login se request.get? session [: user_id] = nil @user = User.new else @user = User.new (params [: user]) logging_in_user = @ user.try_to_login se registrado sessão_in_user [: user_id] = user_in_user.id redirect_to (: action => "index") else flash [: Notice] = "Combinação de usuário / senha inválida" end end end 

Na primeira parte com o IF condicional do nosso controlador pedimos o solicitarSe for GET, limpamos a sessão e criamos um novo objeto do tipo usuário, desta forma preparamos o caminho para entrar. Se não OBTER o solicitar presumimos que seja POST, então passamos os parâmetros do formulário para o nosso objeto e chamamos o método try_to_login, o que esse método faz é comparar o nome de usuário e a senha com o que temos no banco de dados.
Finalmente com outra condicional vemos se o usuário estava realmente logado, atribuímos valores à sessão e então redirecionamos o usuário ao índice, caso contrário mostramos um erro com uma mensagem.
Como vimos no controlador chamamos alguns métodos que nos permitem fazer as comparações correspondentes, agora o que precisamos é criar esses métodos e para isso vamos fazer no modelo, vamos ver o que contém e porque contém isto:
 def self.login (nome, senha) hashed_password = hash_password (senha || "") find (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) end 

O método Conecte-se é simples, recebe dois parâmetros: nome e senha, depois consulta o banco de dados por esses valores.
O método try_to_login, o que ele faz é invocar o método de login, desta forma podemos dar uma resposta ao usuário se ele existe ou não em nosso banco de dados.
Por fim, criamos nossa visão e as ações que ela usará, no arquivo app / views / login nós vamos criar nosso login.rhtml e também o nosso index.rhtml, o primeiro é bastante parecido com a construção do usuário e este segundo veremos agora.

Total de pedidos no sistema:

Pedidos com envio pendente:


Como podemos ver, é bastante simples, simplesmente mostrará os pedidos pendentes do usuário, para isso no controlador devemos incorporar as ações necessárias:
 def index @total_orders = *****. count @pending_orders = *****. count_pending end 

Lá teríamos visto o resultado.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave