一个功能强大、简单且异步的Sanic身份验证和授权库。
amyrose的Python项目详细描述
艾米·罗斯
一个功能强大、简单、异步的Sanic身份验证和授权库。
View Demo
·
Report Bug
·
Request Feature
在
目录
关于项目
Amy Rose是一个简化的身份验证和授权库。专门设计用于Sanic。 amyrose提供了在大多数开源安全库中没有的特性,比如
- 短信验证
- 智威汤逊
- 现成的数据库集成
- 通配符权限
- 角色权限
艾米·罗斯包含了你所有的基本安全需求。在
使用
构建入门
为了开始,请安装pip。在
先决条件
- 皮普
sudo apt-get install python3-pip
安装
- 克隆回购
- 安装pip包
pip3 install amyrose
使用
一旦艾米·罗斯一切就绪,一切就绪,实施起来就很容易了。在
初始设置
首先,您必须创建一个名为玫瑰.ini. 以下是其内容示例:
[ROSE]
secret=05jF8cSMAdjlXcXeS2ZJ
[TORTOISE]
username=admin
password=8KjLQtVKTCtItAi
endpoint=amyrose.cbwyreqgyzf6b.us-west-1.rds.amazonaws.com
schema=amyrose
models=['amyrose.core.models']
generate=true
[TWILIO]
from=+12058469963
token=1bcioi878ygO8fi766Fb34750e82a5ab
sid=AC6156Jg67OOYe75c26dgtoTICifIe51cbf
如果你自己初始化乌龟,你不必在这里配置它。在
如果不使用Twilio作为验证方法,则不必在这里配置它。在
配置好Amy Rose后,可以使用以下示例初始化Sanic:
if __name__ == '__main__':
app.add_task(tortoise_init())
app.run(host='0.0.0.0', port=8000, debug=True)
所有请求正文都应作为form-data
发送
身份验证
- 登记
Key | Value |
---|---|
username | test |
test@test.com | |
phone | +19876854892 |
password | testpass |
@app.post('/register')asyncdefon_register(request):account,verification_session=awaitregister(request)awaittext_verification_code(account,verification_session)response=text('Registration successful')response.cookies[verification_session.cookie_name()]=verification_session.to_cookie()returnresponse
- 验证
@app.post('/verify')asyncdefon_verify(request):account,verification_session=awaitverify_account(request)returntext('Verification successful')
- 登录
Key | Value |
---|---|
test@test.com | |
password | testpass |
@app.post('/login')asyncdefon_login(request):account,authentication_session=awaitlogin(request)response=text('Login successful')response.cookies[authentication_session.cookie_name()]=authentication_session.to_cookie()returnresponse
- 注销
@app.post('/logout')asyncdefon_logout(request):account,authentication_session=awaitlogout(request)response=text('Logout successful')returnresponse
- 需要身份验证
@app.get("/get")@requires_authentication()asyncdefget_user_info(request):returntext('Sensitive user information')
授权
通配符权限的示例包括:
admin:add,update,delete
admin:add
admin:*
employee:add,delete
employee:delete
employee:*
一个名为Apache Shiro的库非常好地解释了这个概念。我 绝对推荐Java开发人员使用这个库。在
- 需要权限
@app.get('/update')@requires_permission('admin:update')asyncdefon_test_perm(request):returntext('Admin has manipulated very sensitive data')
- 需要角色
@app.get('/get')@requires_role('Admin')asyncdefon_test_role(request):returntext('Admin has retrieved very sensitive data')
路线图
与amyrose的Trello董事会保持联系,以获得提议的特性、已知问题和正在进行的开发的列表。在
贡献
贡献使开源社区成为一个值得学习、启发和创造的地方。您所做的任何贡献都将受到的高度赞赏。在
- 把项目分成两半
- 创建您的功能分支(
git checkout -b feature/AmazingFeature
) - 提交更改(
git commit -m 'Add some AmazingFeature'
) - 推到分支(
git push origin feature/AmazingFeature
) - 打开拉取请求
许可证
在GNU通用公共许可v3.0下发布。有关详细信息,请参见LICENSE
。在
联系人
艾丹·斯图尔特
项目链接:https://github.com/sunset-developer/Amy-Rose
致谢
- 项目
标签: