gpt4 book ai didi

python - 如何在 Web2py 中重复使用 Auth 注册、验证为 Rest Api

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:36 25 4
gpt4 key购买 nike

我对 python 和 web2py 都是新手。我的项目在前端使用 angularjs,在后端使用 web2py 作为 Rest 服务。

我注意到 web2py 已经开发了类 Auth 用于身份验证和授权。但是,如果我使用 Rest Api,我真的不知道如何在 Rest API 上重新使用此类。

例如,我尝试调用 ajax 来注册新用户:

 $http.post('/myapp/authentication/register', user)

下面的代码根本不起作用:

def register():
return dict(form=auth.register())

我不得不天真地以手动方式插入到 auth_user 表中:

def register():
username = request.vars.username
password = request.vars.password
email = request.vars.email

row = db.auth_user(username=username)
if not row:
db.auth_user.insert(username=username, password=password, email=email)

else:
raise HTTP(409, 'username exists')

此方法确实可以将新用户插入到 auth_user 表中。但是,当我尝试使用方法 login_bare 时:

 login_bare(self, username, password)

用上述方法注册的用户总是失败。我需要解决这个问题吗?

最佳答案

db.auth_user.insert(username=username, password=password, email=email)

上面你插入的是明文密码。但是,默认情况下,db.auth_user.password 字段有一个 CRYPT() 验证器对密码进行哈希处理,哈希是在登录时检查的内容。通常,字段验证器(包括密码字段的 CRYPT 验证器)在提交和处理表单时运行(在这种情况下不会发生,因为您没有使用 web2py 表单提交注册) .但是,您可以按如下方式运行验证器:

db.auth_user.validate_and_insert(username=username, password=password,
email=email)

关于python - 如何在 Web2py 中重复使用 Auth 注册、验证为 Rest Api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18103075/

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