1.重写get_current_user()方法

  1. class BaseHandler(tornado.web.RequestHandler):
  2. def get_current_user(self):
  3. return self.get_secure_cookie("username")

获取cookie中用户信息

2.登录url

  1. class LoginHandler(BaseHandler):
  2. def get(self):
  3. self.render('login.html')
  4.  
  5. def post(self):
  6. self.set_secure_cookie("username", self.get_argument("username"))
  7. self.redirect("/")

代码是简单的示例,没有做登录验证

3.主界面url

  1. class WelcomeHandler(BaseHandler):
  2. @tornado.web.authenticated
  3. def get(self):
  4. self.render('index.html', user=self.current_user)

@tornado.web.authenticated装饰器包裹get方法时,表示这个方法只有在用户合法时才会调用,authenticated装饰器会调用get_current_user()方法获取current_user的值,若值为False,则重定向到登录url

4.退出登录url

  1. class LogoutHandler(BaseHandler):
  2. def get(self):
  3. if (self.get_argument("logout", None)):
  4. self.clear_cookie("username")
  5. self.redirect("/")

删除cookie中的用户,重定向到登录url

5.服务器设置

  1. if __name__ == "__main__":
  2. tornado.options.parse_command_line()
  3.  
  4. settings = {
  5. "template_path": os.path.join(os.path.dirname(__file__), "templates"),
  6. "cookie_secret": "bZJc2sWbQLKos6GkHn/VB9oXwQt8S0R0kRvJ5/xJ89E=",
  7. "xsrf_cookies": True,
  8. "login_url": "/login"
  9. }
  10.  
  11. application = tornado.web.Application([
  12. (r'/', WelcomeHandler),
  13. (r'/login', LoginHandler),
  14. (r'/logout', LogoutHandler)
  15. ], **settings)
  16.  
  17. http_server = tornado.httpserver.HTTPServer(application)
  18. http_server.listen(options.port)
  19. tornado.ioloop.IOLoop.instance().start()

login_url参数设定了登录url

tornado用户验证的更多相关文章

  1. Tornado(cookie、XSRF、用户验证)

      --------------------Cookie操作-------------------- 1.设置Cookie     1.set_cookie(name,value,domain=Non ...

  2. Tornado 的安全性保障机制Cookie XSRF跨站请求伪造阻断 &用户验证机制

    6.1 Cookie 对于RequestHandler,除了在第二章中讲到的之外,还提供了操作cookie的方法. 设置/获取 注意:Cookie 在浏览器调试时, 只有在第一次访问该网站的时候获取到 ...

  3. python_tornado_session用户验证

    什么是session? -- Django中带有session,tornado中自己写 -- 逻辑整理 用户请求过来,验证通过,随机生成一个字符串当作value返回给浏览器, 在服务器中用户信息与随机 ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)

    系列目录 前言: WebAPI主要开放数据给手机APP,其他需要得知数据的系统,或者软件应用,所以移动端与系统的数据源往往是相通的. Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能, ...

  5. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  6. 来玩Play框架06 用户验证

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 用户验证(User Authentification)复合的使用Play框架的数个 ...

  7. spring4.0整合mongodb3.0.4项目实践(用户验证)

    我们的项目用到了spring框架和mongdb数据库,随着mongodb升级到3.0已有半年时间,我们也开始随之升级,但是3.0的用户验证有所更改,导致原来的很多配置无法再用. 经过几天的尝试后,终于 ...

  8. mongdb3.0用户验证问题

    1.  用户验证方式更改: Mongodb2.6的默认用户验证方式是:MONGODB-CR Mongodb3.0的默认用户验证方式是:SCRAM-SHA-1 因为新的验证方式在spring和java中 ...

  9. 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4

    以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...

随机推荐

  1. gradle 添加jar依赖,执行grade build时出现“程序包不存在”问题

    引用的第三方依赖的包都找不到了 解决办法 group'com.suneony' version'1.0.0' apply plugin:'java' repositories { mavenLocal ...

  2. win7 mtp

    Sensors MTP Monitor Service 允许MTP设备数据传输,如果该服务被禁用,MTP监视器将不能工作.该服务的默认运行方式是手动,如果你没有使用MTP设备,该功能就可以放心禁用.  ...

  3. ebay分布式事务方案中文版

    http://cailin.iteye.com/blog/2268428 不使用分布式事务实现目的  -- ibm https://www.ibm.com/developerworks/cn/clou ...

  4. 文本框input:text

      文本框 CreateTime--2017年4月24日10:40:40 Author:Marydon 一.文本框 (一)标签 <input type="text"/> ...

  5. sqlplus命令手冊

    show和set命令是两条用于维护SQLPlus系统变量的命令 : SQL> show all --查看全部系统变量值 SQL>show user --显示当前连接用户 SQL>sh ...

  6. python 2.7疑难问题之 编码

    #http://www.cnblogs.com/bluescorpio/p/4303656.html •在遇到错误提示时,注意查看错误提示内容,同时注意查看type类型. 1.TypeError: d ...

  7. java 打包war包

    jar -cvf  news.war news war包放在Tomcat webApp中可以自动解压.

  8. div 模糊效果

    -webkit-filter:blur(3px); -moz-filter:blur(3px); filter:url(blur.svg#blur); filter: progid:DXImageTr ...

  9. editplus发布3.01 Build 446 Final版(附下载及中文版)

    http://www.cnblogs.com/JustinYoung/archive/2008/04/14/editplus-301.html没有什么好说的,我个人最喜欢的编辑器.除了windows和 ...

  10. 常用JS技巧[转]

    作者:72妃 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); even ...