Remember me in Turbogears2
Wednesday, March 10th, 2010 | Software Development
One of the problems with TG2 is that the current version doesn’t support a “standard” way to remember the user after he closes the browser. We have been able to find a quick and dirty solution that we like to share here. Keep in mind that this solution only works with recent versions of repoze.who, this works with TG2.0.3, but might not work with previous releases of TG2.
Inside the login.html we set a cookie for the remember_me option to pass it to the controller and then inside the post_login we change the cookie.
Supposing you have a #remember_me checkbox inside your login.html you can add this to set the cookie:
function set_remember_cookie() { is_checked = jQuery('#remember_me:checked').length; if (is_checked) document.cookie = 'remember_me=1'; else document.cookie = 'remember_me=0'; } jQuery(document).ready(function() { set_remember_cookie(); jQuery('#remember_me').click(set_remember_cookie); }
Then inside your post_login method in the root controller you can place:
remember_me = request.cookies.get('remember_me', 0) try: remember_me = int(remember_me) except: remember_me = 0 if remember_me: request.identity['max_age'] = 2252000 # 30 days request.identity['userdata']= "max_age" # force cookie refresh
This would remember the user for 30 days even if he closes the browser.
Search
Archives
- January 2012
- November 2011
- October 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- September 2010
- August 2010
- July 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- November 2008
- October 2008
- August 2008