gpt4 book ai didi

python - 使用 Pyramid 认证

转载 作者:太空狗 更新时间:2023-10-29 18:25:53 25 4
gpt4 key购买 nike

在 Pyramid 文档中,Sqlalchemy Dispatch 教程使用 security.py 中的虚拟数据。我需要使用 mysql 数据,所以我是这样实现的:

我的登录码

@view_config(route_name='login', renderer='json',permission='view')
def user_login(request):
session = DBSession
username = request.params['username']
password = request.params['password']
sha = hashlib.md5()
sha.update(password)
password = sha.digest().encode('hex')
user = session.query(Users).filter(and_(Users.username==username,Users.password ==password)).count()
if(user != 0):
headers = remember(request, username)
return HTTPFound(location = '/index/',
headers =headers)
else:
print "error"

以上内容使系统记住将在 security.py 中使用的用户名。下面,我使用它来获取用户所在的组。

from .models import (
DBSession,
Users,
)

def groupfinder(userid, request):
session = DBSession()
for instance in session.query(Users).filter(Users.username==userid):
group = 'group:'+instance.group
lsth = {'userid':[group]}
return lsth.get ('userid')

这是使用 Pyramid 授权的最佳方式吗?

最佳答案

你的想法是对的。

您的群组查找器现在坏了。请注意,您有一个带有 return 语句的 for 循环。如果用户有效,groupfinder 应该返回至少一个空列表[]。仅在用户无效时返回 None

现在密码的 md5 也很糟糕。查看 cryptacular 或 passlib 库以通过 bcrypt 执行加密散列。

关于python - 使用 Pyramid 认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com