aiohttp的身份验证库

aegis的Python项目详细描述


Python 3.6pypitravis-badgecoverallscodefactor gradedownloads

aegis允许protect端点 验证作用域


安装

pip install aegis

简单示例

fromaiohttpimportwebfromaegisimportlogin_required,JWTAuthclassJWTAuthenticator(JWTAuth):jwt_secret="<secret>"asyncdefauthenticate(self,request:web.Request)->dict:db=request.app["db"]credentials=awaitrequest.json()id_=credentials["id"]user=db.get(id_)returnuser@login_requiredasyncdefprotected(request):returnweb.json_response({'hello':'user'})defcreate_app():app=web.Application()app["db"]={5:{"name":"test"}}app.router.add_get('/protected',protected)JWTAuthenticator.setup(app)returnappif__name__=="__main__":app=create_app()web.run_app(app)

获取访问令牌

curl -X POST http://0.0.0.0:8080/auth -d '{"id": 5}'{"access_token": "<access_token>"}

获取用户

curl http://0.0.0.0:8080/protected -H 'Authorization: Bearer <access_token>'{'hello': 'user'}

测试

git clone https://github.com/mgurdal/aegis.git
cd aegis
make cov

要求

  • Python=3.6
  • aiohttp
  • Pyjwt

许可证

aegis是在apache 2许可下提供的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于测试失败,java testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串