我试图从web上复制并使用示例“PostgreSQL数据库的用户身份验证”。这是一本很棒的食谱。我不明白为什么会出现以下错误。
>
at/login“ThreadedDict”对象没有“login”属性
at/login“ThreadedDict”对象没有属性“privilege”
这是针对第二个错误输出到终端的错误。(第一个几乎相同)
Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/web.py-0.37-py2.7.egg/web/application.py", line 239, in process return self.handle() File "/usr/local/lib/python2.7/dist-packages/web.py-0.37-py2.7.egg/web/application.py", line 230, in handle return self._delegate(fn, self.fvars, args) File "/usr/local/lib/python2.7/dist-packages/web.py-0.37-py2.7.egg/web/application.py", line 420, in _delegate return handle_class(cls) File "/usr/local/lib/python2.7/dist-packages/web.py-0.37-py2.7.egg/web/application.py", line 396, in handle_class return tocall(*args) File "/home/erik/Dropbox/Python/Web.py/Code.py", line 44, in GET render = create_render(session.privilege) File "/usr/local/lib/python2.7/dist-packages/web.py-0.37-py2.7.egg/web/session.py", line 71, in __getattr__ return getattr(self._data, name) AttributeError: 'ThreadedDict' object has no attribute 'privilege' 127.0.0.1:36420 - - [25/Aug/2012 01:12:38] "HTTP/1.1 GET /login" - 500 Internal Server Error
这是我的密码。py文件。基本上都是从烹饪书上剪下来的。我尝试将所有的类和def放在主代码之上。正如另一篇文章中提到的,我也尝试过用sudo启动python。
import web class index: def GET(self): todos = db.select('todo') return render.index(todos) class add: def POST(self): i = web.input() n = db.insert('todo', title=i.title) raise web.seeother('/') def logged(): return False #I added this to test error #1, Now I get error #2 #if session.login==1: # return True #else: # return False def create_render(privilege): if logged(): if privilege == 0: render = web.template.render('templates/reader') elif privilege == 1: render = web.template.render('templates/user') elif privilege == 2: render = web.template.render('templates/admin') else: render = web.template.render('templates/communs') else: render = web.template.render('templates/communs') return render class Login: def GET(self): if logged(): render = create_render(session.privilege) return '%s' % render.login_double() else: # This is where error #2 is render = create_render(session.privilege) return '%s' % render.login() def POST(self): name, passwd = web.input().name, web.input().passwd ident = db.select('users', where='name=$name', vars=locals())[0] try: if hashlib.sha1("sAlT754-"+passwd).hexdigest() == ident['pass']: session.login = 1 session.privilege = ident['privilege'] render = create_render(session.privilege) return render.login_ok() else: session.login = 0 session.privilege = 0 render = create_render(session.privilege) return render.login_error() except: session.login = 0 session.privilege = 0 render = create_render(session.privilege) return render.login_error() class Reset: def GET(self): session.login = 0 session.kill() render = create_render(session.privilege) return render.logout() #web.config.debug = False render = web.template.render('templates/', base='layout') urls = ( '/', 'index', '/add', 'add', '/login', 'Login', '/reset', 'Reset' ) app = web.application(urls, globals()) db = web.database(dbn='postgres', user='hdsfgsdfgsd', pw='dfgsdfgsdfg', db='postgres', host='fdfgdfgd.com') store = web.session.DiskStore('sessions') # Too me, it seems this is being ignored, at least the 'initializer' part session = web.session.Session(app, store, initializer={'login': 0, 'privilege': 0}) if __name__ == "__main__": app.run()
好吧,我能找出我做错了什么。所有的新手和学习过程的所有部分。这段代码现在可以正常工作了。我被卡住的部分现在正在工作。在代码中查看我的注释
谢谢
import web web.config.debug = False render = web.template.render('templates/', base='layout') urls = ( '/', 'index', '/add', 'add', '/login', 'Login', '/reset', 'Reset' ) app = web.application(urls, globals()) db = web.database(blah, blah, blah) store = web.session.DiskStore('sessions') session = web.session.Session(app, store, initializer={'login': 0, 'privilege': 0}) class index: def GET(self): todos = db.select('todo') return render.index(todos) class add: def POST(self): i = web.input() n = db.insert('todo', title=i.title) raise web.seeother('/') def logged(): if session.get('login', False): return True else: return False def create_render(privilege): if logged(): if privilege == 0: render = web.template.render('templates/reader') elif privilege == 1: render = web.template.render('templates/user') elif privilege == 2: render = web.template.render('templates/admin') else: render = web.template.render('templates/communs') else: ## This line is key, i do not have a communs folder, thus returning an unusable object #render = web.template.render('templates/communs') #Original code from example render = web.template.render('templates/', base='layout') return render class Login: def GET(self): if logged(): ## Using session.get('something') instead of session.something does not blow up when it does not exit render = create_render(session.get('privilege')) return '%s' % render.login_double() else: render = create_render(session.get('privilege')) return '%s' % render.login() def POST(self): name, passwd = web.input().name, web.input().passwd ident = db.select('users', where='name=$name', vars=locals())[0] try: if hashlib.sha1("sAlT754-"+passwd).hexdigest() == ident['pass']: session.login = 1 session.privilege = ident['privilege'] render = create_render(session.get('privilege')) return render.login_ok() else: session.login = 0 session.privilege = 0 render = create_render(session.get('privilege')) return render.login_error() except: session.login = 0 session.privilege = 0 render = create_render(session.get('privilege')) return render.login_error() class Reset: def GET(self): session.login = 0 session.kill() render = create_render(session.get('privilege')) return render.logout() if __name__ == "__main__": app.run()
于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,
问题内容: 是否存在node.js的现有用户身份验证库?特别是,我正在寻找可以对用户进行密码身份验证的东西(使用自定义后端身份验证数据库),并将该用户与会话相关联。 在编写身份验证库之前,我认为我会看看人们是否知道现有的库。通过Google搜索找不到任何明显的内容。 -Shreyas 问题答案: 看起来连接中间件的connect-auth插件正是我所需要的:http : //wiki.github
我正在尝试制作一个适配器,它将显示给listview实时数据库内容。 带适配器返回null得身份验证: 类: 请求布局:
我是Spring安全的新手,我想用数据库验证用户。我已经用jdbc创建了一个登录页面和一个身份验证提供程序,它检查用户是否存在于数据库中。但是我的代码没有这样做的问题是,它允许所有用户登录!我的代码怎么了?谢谢你的帮助。 这是我的安全会议。xml:
继续我先前的问题。我正在研究CAS 5,以便根据需要进行修改。在CAS教程的帮助下,我现在已经完成了自定义身份验证。现在,我向pom添加了以下依赖项。xml,通过以下链接连接到数据库。 并在应用程序中添加了数据库身份验证属性。属性 但这不起作用意味着 类型org.apereo.cas.configuration.model.support.jdbc.QueryJdbcAuthentiationPr
我已经开始开发一个由Google的Firebase服务提供支持的应用程序。我很好奇数据传输在Auth和数据库服务中是否安全。如果没有,我是否可以阅读任何材料来源以实现加密? 非常感谢。