Alex Florentino

KISS - Keep It Simple, Stupid
December 16th, 2008

Autenticação com ruby on rails - restful authentication

1. Criando novo projeto de exemplo

 rails -d mysql todo

2. gerando um scaffold simples, com o propósito demonstrar como funciona restful authentication

 ruby script\generate scaffold todo descricao:text prazo:date feito:boolean

vamos criar também nosso banco de dados para isso não se esqueça de configurar seu arquivo config\database.yml (development)

 rake db:create

e executa nossa migration para ele criar a tabela todos:

 rake db:migrate

agora é um bom momento para você startar sua aplicação e fazer alguns testes:

 ruby script/server

3. Baixando restful authentication

no diretorio raíz do seu do seu projeto

 git clone git://github.com/technoweenie/restful-authentication.git vendor/plugins/restful_authentication

para rodar esse comando você irá precisar instalar um cliente git

4. Rodar um generate que irá criar uma estrutura de autenticação em nosso projeto

 ruby script\generate authenticated user sessions

Este generate irá criar o user model para você que nada mais é que sua tabela de usuarios
e também irá criar o controlador sessions, que será usado para login e logout.

novamente precisamos executar uma migration para atualizar nosso banco de dados

 rake db:migrate

e precisamos incluir o modulo AuthenticatedSystem em nosso application controler (app\controllers\application.rb) para que a nossa infra-estrutura de autenticação fique disponivel para nossa aplicação.

 include AuthenticatedSystem

5. vamos alterar  no nosso controller todo para pedir autenticação,
para isso basta adicionar a linha:

 before_filter :login_required , :except => [:index]

lembre se para cadastrar um novo usuario http://localhost:3000/signup

Pronto esta feito! implementamos nosso sistema de autenticação.

3 Responses to “Autenticação com ruby on rails - restful authentication”

  1. [...] tutorial irei aproveitar aplicação construida no post sobre restful authentication para implementar autenticação por OpenID, vamos [...]

  2. Ricardo Azevedo Says:
    August 4th, 2009 at 11:56 am

    Olá Alex, muito bom o post!

    Sou novo em Rails e estou vindo do mundo JavaEE! Acho o conceito do Rails fantástico, mas estou apanhando um pouco….

    Criei uma aplicação nova e segui todos os passos do seu post, mas quando tento incluir um novo usuário (signup) ele dá um erro estranho que não consegui localizar muitas referências na Web. Poderia me ajudar?

    No console, a mensagem é esta:
    Processing UsersController#new (for 127.0.0.1 at 2009-08-04 11:49:39) [GET]

    NameError (uninitialized constant User::Authentication):
    app/models/user.rb:4
    app/controllers/users_controller.rb:8:in `new’

    Segue a mensagem de erro no browser:
    /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:105:in `const_missing’
    /home/ricardo/Desenvolvimento/rails/orionasp/app/models/user.rb:4
    /home/ricardo/Desenvolvimento/rails/orionasp/app/controllers/users_controller.rb:8:in `new’

    Será que pode ser algum problema com incompatibilidade de versões? Segue descrição da minha instalação:
    Ruby version 1.8.7 (i486-linux)
    RubyGems version 1.3.5
    Rack version 1.0
    Rails version 2.3.3
    Active Record version 2.3.3
    Action Pack version 2.3.3
    Active Resource version 2.3.3
    Action Mailer version 2.3.3
    Active Support version 2.3.3
    Application root /home/ricardo/Desenvolvimento/rails/orionasp
    Environment development
    Database adapter mysql
    Database schema version 20090804144506

    Obrigado e um abraço!

  3. vc colocou “include AuthenticatedSystem” no application.rb ?

Leave a Reply