Sha256: c7d9bd23aeb1aba2e71eafbeac62e693a6da916ba72bba9405b2a297e92f062a
Contents?: true
Size: 964 Bytes
Versions: 1
Compression:
Stored size: 964 Bytes
Contents
description 'Persistent login' class ::Olelo::Application TOKEN_NAME = 'olelo.token' TOKEN_LIFETIME = 24*60*60*365 hook :auto_login do if !User.current token = request.cookies[TOKEN_NAME] if token hash, user = token.split('-', 2) User.current = User.find(user) if sha256(user + Config['rack.session_secret']) == hash end end end before :login_buttons do %{<input type="checkbox" name="persistent" id="persistent" value="1"/> <label for="persistent">#{escape_html :persistent_login.t}</label><br/>} end after :action do |method, path| if path == '/login' if User.logged_in? && params[:persistent] token = "#{sha256(User.current.name + Config['rack.session_secret'])}-#{User.current.name}" response.set_cookie(TOKEN_NAME, :value => token, :expires => Time.now + TOKEN_LIFETIME) end elsif path == '/logout' response.delete_cookie(TOKEN_NAME) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
olelo-0.9.3 | plugins/login/persistent.rb |