Web.py session用户认证

调试一个用session来认证用户的程序 大概是这个样子 基本上可以当作webpy session认证的示例程序了

#!/usr/bin/env python
#coding=utf-8
import web
import time

urls = (
    ‘/‘, ‘index‘,
    ‘/xml‘, ‘pushxml‘,
    ‘/login‘, ‘login‘,
    ‘/logout‘, ‘logout‘,
)
render = web.template.render(‘templates/‘)
web.config.debug = False
app = web.application(urls, locals())
session = web.session.Session(app, web.session.DiskStore(‘sessions‘))      

class index():
    def GET(self):
        try:
            if session.logged_in == True:
                return ‘<h1>You are logged in</h1><a href="/logout">Logout</a>‘
        except AttributeError:
            pass
        return ‘<h1>You are not logged in.</h1><a href="/login">Login now</a>‘

def authorize(func):
    def logged(*args,**dic):
        if session.logged_in==True:
            func(*args,**dic)
        else:
            raise web.seeother(‘/login‘)
    return logged

class pushxml():
    # @authorize
    def GET(self):
        try:
            if session.logged_in == True:
                web.header(‘Content-Type‘, ‘text/xml‘)
                i = web.input(data=None)
                return render.response(i.data)
        except AttributeError:
            pass

class login():
    def GET(self):
        try:
            session.logged_in = False
        except AttributeError:
            pass
        return """
            <form action=/login method=POST>
                <table id="login">
                    <tr>
                        <td>User: </td>
                        <td><input type=text name=‘user‘></td>
                    </tr>
                    <tr>
                        <td>Password: </td>
                        <td><input type="password" name=passwd></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type=submit value=LOGIN></td>
                    </tr>
                </table>
            </form>
        """

    def POST(self):
        login_data = web.input()
        if login_data.user == ‘a‘ and login_data.passwd == ‘a‘:
            session.logged_in = True
            print "posted"
            print session
            raise web.seeother(‘/‘)

class logout():
    def GET(self):
        try:
            session.logged_in = False
            session.kill()
        except AttributeError:
            pass
        raise web.seeother(‘/‘)

if __name__ == ‘__main__‘:
    app.run()

开始的时候为了方便web.config.debug = True(这是默认值) session总是不能保存 经过相当长时间的纠结发现错误竟然出在这里

web.config.debug = False

如上 关掉debug模式session可以正常保存了 究竟失身么原因我也搞不清楚了 今天才看到 http://webpy.org/cookbook/sessions

sessions doesn’t work in debug mode because it interfere with reloading. see session_with_reloader for more details.

FUCK web.py!!!

时间: 2024-11-05 20:39:34

Web.py session用户认证的相关文章

web.py session

web.py session学习: import webfrom web import form urls = ( '/','Index', '/test','Test', '/login','Login', '/logout','Logout',) render = web.template.render(".") allowed = ( ('admin','123123'),) web.config.debug = Falseapp = web.application(urls,

Linux -- Web服务器配置之用户认证;Perl语言解释器的安装

一.用户认证 用户认证在网络安全中是非常重要的技术之一,它是保护网络系统资源的第一道防线.用户认证控制着所有登录并检查访问用户的合法性,其目标是仅让合法用户以合法的权限访问网络系统的资源.当用户第一次访问了启用用户认证目录下的任何文件,浏览器会显示一个对话框,要求输入正确的登录用户名和口令进行用户身份的确认.若是合法用户,则显示所访问的文件内容.此后访问该目录的每个文件时,浏览器会自动送出用户名和密码,不用再输入了,直到关闭浏览器为止.用户认证功能起到了一个屏障的作用,限制非授权用户非法访问一些

部署新浪SAE web.py Session及图片上传等问题注意事项

1.以下几条代码解决编码问题 import sysreload(sys)sys.setdefaultencoding('utf-8') 2.图片上传问题 需要开通sina的Storage服务,随便建个什么Domain,注意HTML代码,那个enctype属性一定要写,两个上传图片的控件叫avatar和photo <form action="details" method="post" enctype="multipart/form-data"

MEAN全栈开发 之 用户认证篇

作者:Soaring_Tiger http://blog.csdn.net/Soaring_Tiger/article/details/51418209 本篇将覆盖以下内容(阅读本文需要有一定Express.Mongoose基础): 在 MEAN全栈开发中添加用户认证 在Express中使用Passport模块管理用户认证 在Exrpess中生成JSON Web Tokens(JWT) 实现用户注册与登录 在Angular当中使用 local storage管理用户session 1.1 在ME

翻译:WebApi 认证--用户认证Oauth解析

The Web API v2用户认证模板提供了流行的应用用户认证场景,如.使用本地帐号的用户名密码认账 (包括创建用户.设置和修改密码)以及使用第三方的认证方式,如facebook,google等等– 在本地中包含了外部帐号的连接 所有的这些均通过使用一个OAuth2认证服务进行. To make all that happen the template combines quite a bit of new stuff together: OWIN, Katana authentication

使用web.py 搭建服务器

有很多python的web框架,web.py是一个轻量级Python web框架.她并不是使用很多的一个. 但并不妨碍她的简单实用.搭建一个嵌入式web服务器最好不过. 下面把笔者搭建过程做一个介绍: 1. 下载python 2.7.8 ,做交叉编译,需要依据自己的平台做修改: ./configure make python Parser/pgen mv python python_for_build;mv Parser/pgen Parser/pgen_for_build make distc

nginx服务做用户认证和基于域名的虚拟主机

实验一.用nginx怎么实现用户访问时的认证 一.目标        通过调整Nginx服务端配置,实现以下目标: 访问Web页面需要进行用户认证 用户名为:tom,密码为:123456 二.方案         通过Nginx实现Web页面的认证,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证.    最后使用htpasswd命令创建用户及密码即可,服务端:192.168.4.102,客户端:192.168.4.101 三.实施步骤(nginx服务安装见我的"搭建ngin

nginx之用户认证

1,需求访问Web页面需要进行用户认证用户名为:jluocc,密码为:123456 2,配置nginx[[email protected] ~]# vim /usr/local/nginx/conf/nginx.confserver {listen 80;server_name localhost;auth_basic "Input Password:"; //认证提示符auth_basic_user_file "/usr/local/nginx/pass"; //

Tornado web.authenticated 用户认证浅析

在Web服务中会有用户登录后的一系列操作, 如果一个客户端的http请求要求是用户登录后才能做得操作, 那么 Web服务器接收请求时需要判断该请求里带的数据是否有用户认证的信息. 使用Tornado框架开发Web服务, 框架里提供了tornado.web.authenticated的 decorator 的辅助开发者做用户登录认证, 即开发者在实现一个 handler(对应一个url资源, 继承于tornado.web.RequestHandler)时,该 url的资源操作需要有用户认证或者登录