hassox (owner)

Revisions

gist: 118488 Download_button fork
public
Public Clone URL: git://gist.github.com/118488.git
Embed All Files: show embed
Ruby #
1
2
3
4
5
6
7
8
9
10
11
class Application < Merb::Controller
 
  private
  def try_authentication(*args)
    begin
      ensure_authentication(*args)
    rescue Unauthenticated
    end
  end
 
end
Ruby #
1
2
3
4
5
class Foo < Application
 
  before :try_authentication
 
end
Ruby #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class RememberMeStrategy < Merb::Authentication::Strategy
  def run!
    if request.cookies[:auth_token]
      if user = User.first(:auth_token=> request.cookies[:auth_token])
        if user.valid_token?
          return user
        end
      else
        cookies.delete(:auth_token)
        nil
      end
    end # if cookie[:auth_token]
  end # run!
end # RememberMeStrategy
 
# Runs after every time the user logs in
Merb::Authentication.after_authentication do |user,request,params|
  if params["remember_me"].to_i == 1
    token = user.make_token
    request.cookies.set_cookie(:auth_token,user.auth_token,{:expires=>user.token_expires_on.to_time})
  end
  user
end
Ruby #
1
2
3
4
5
6
7
8
class MerbAuthPasswordSlice::Sessions
  after :destroy, :clean_auth_token
 
  private
  def clean_auth_token
    cookies[:auth_token] = nil
  end
end