6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/sinatra_more/warden_plugin.rb', line 6
def self.registered(app)
app.use Warden::Manager do |manager|
manager.default_strategies :password
manager.failure_app = app
end
app.helpers SinatraMore::OutputHelpers
app.helpers SinatraMore::WardenHelpers
Warden::Manager.serialize_into_session{ |user| user.nil? ? nil : user.id }
Warden::Manager.serialize_from_session{ |id| id.nil? ? nil : User.find(id) }
Warden::Strategies.add(:password) do
def valid?
username || password
end
def authenticate!
u = User.authenticate(username, password)
u.nil? ? fail!("Could not log in") : success!(u)
end
def username
params['username'] || params['nickname'] || params['login'] || params['email']
end
def password
params['password'] || params['pass']
end
end
end
|