Para mi último proyecto estoy usando https://github.com/hassox/rails_warden. Se adapta muy bien a mis necesidades, excepto que no puedo encontrar una buena manera de implementar remember_me. Sé que es notoriamente difícil recordarme desde el punto de vista de la seguridad, así que espero que haya un proyecto que haga el trabajo. ¿Alguien ha visto algo o tiene una buena idea?remember_me con warden
5
A
Respuesta
4
Devise, que es una solución de autenticación además de Warden, tiene una implementación de rememberable.
5
autorización aquí es cómo lo resolví
# User model must have remember_token attribute
# in config.ru
use Rack::Cookies
run MyApp
# in lib/strategies.rb
Strategies.add(:cookie) do
def valid?
env['rack.cookies']['user.remember.token']
end
def authenticate!
if user = User.find_by_remember_token(cookies['user.remember.token'])
success! user
else
fail! "Could not log in"
end
end
end
Manager.after_authentication :scope => :user do |user, auth, opts|
auth.env['rack.cookies']['user.remember.token'] = user.generate_remember_token! # sets its remember_token attribute to some large random value and returns the value
end
Manager.before_logout :scoper => :user do |user, auth, opts|
user.update_attribute :remember_token, nil
end
+0
Esto parece no funcionar más. (En los rieles 4.2) – Jacob
Cuestiones relacionadas
- 1. Cómo anular Warden/Devise con Rspec en la prueba de Capybara
- 2. Sinatra Warden con la aplicación Ruby on Rails existente que usa Devise
- 3. Rails 3 con Devise y rspec: Ayudantes de prueba de Warden poco confiables
- 4. Rails: Warden/Devise: cómo capturar la url antes del inicio de sesión/acceso fallido
- 5. Idear con Sinatra
- 6. rails_admin con el conflicto rails-api
- 7. role_hierarchy con Symfony2
- 8. ¿Agregar casilla de verificación con simple_form sin asociación con el modelo?
- 9. Método no definido failure_app for nil: NilClass
- 10. Rieles 3: idear con has_one, Anidados atributos no actualizados
- 11. Diseñar devoluciones de llamada
- 12. No se pudo encontrar el generador 'devise_install' - Rails 2.3.8, Devise 1.0.8
- 13. check_box_tag valor predeterminado marcado para recordarme
- 14. Rails 3: crear una validación con: if statement
- 15. Diseñar el error personalizado de sign_in
- 16. ¿Dónde deberían guardarse las devoluciones de llamadas en una aplicación de rieles?
- 17. Idear ignorar la estrategia personalizada
- 18. Diseñar la autenticación con nombre de usuario en lugar de correo electrónico
- 19. Cómo acceder a la sesión de Alcaide/Idear after_authentication de devolución de llamada en Rails
- 20. no se puede poner el campo de dirección de correo electrónico en el formulario de acceso (Authlogic)
- 21. conseguir {{atributo}} {{mensaje}} en vistas RoR
- 22. Diseñar con rieles 3 y remoto => verdadero
- 23. Use las tablas de cuenta y de usuario con Devise
- 24. Migrando a OmniAuth 1.0: método indefinido `user_omniauth_authorize_path '
- 25. galletas Unset php
- 26. Diseñar usuario_actual en routes.rb
- 27. PG :: Error: Error SSL SYSCALL: EOF detectado
- 28. testigo de autenticación con rieles y diseñar
- 29. Unicidad de usuarios con idear y actuadores_as_teniente en rieles 3
- 30. ¿Cómo tener múltiples restricciones en Rails routes.rb?
Yo era consciente de que tenía un legado aplicación inmemorable, no me había dado cuenta de que era una estrategia guarda sin embargo. Eso es perfecto, puedo conectarlo como la primera estrategia en mi configuración warden. Se integrará y confirmará que funciona. – opsb
Me interesaría la respuesta sin confiar en el dispositivo porque estoy intentando implementarlo en una aplicación de sinatra. – Macario