flask-rebar-auth0是一个简单的flask-rebar身份验证器auth0

flask-rebar-auth0的Python项目详细描述


烧瓶-钢筋-认证0

PyPI versionPython versionsLicense: MIT

简单的Flask-Rebar验证器,用于Auth0。 您的访问令牌必须是JWT tokens,此身份验证器才能工作。

初始化

# Configapp.config.from_mapping({"AUTH0_ENDPOINT":"perdu.auth0.com",# The Auth0 domain for your tenant"AUTH0_ALGORITHMS":["RS256"],# The authorized algorithms, you should not have to change it"AUTH0_AUDIENCE":"https://api.perdu.com"# The API Identifier as set on Auth0"AUTH0_HEADER_AUTHENTICATION":True# USe the authentication by header"AUTH0_HEADER_NAME":"Authorization"# (OPTIONAL) Change the header used"AUTH0_HEADER_PREFIX":"Bearer"# (OPTIONAL) Change the prefix used# OR"AUTH0_COOKIE_AUTHENTICATION":True# Use the authentication by cookie"AUTH0_COOKIE_NAME":"Some Cookie"# Name of the cookie containing the access token})# Createauthenticator=Auth0Authenticator(app)@authenticator.identity_handlerdefcreate_user(claims:Dict[str,Any])->Any:"""Built a user object from the claims"""return{"id":claims["sub"]}

用法

fromflask_rebar_auth0importget_authenticated_user@registry.handles(rule="/users/me",method="GET",marshal_schema=UserSchema(),authenticator=authenticator,# Use the authenticator)defget_user():returnget_authenticated_user()# Get the user data created by the identity_handler@registry.handles(rule="/users/me/location",method="GET",marshal_schema=UserLocationSchema(),authenticator=authenticator.with_scopes(["read:location"]),# Require some scopes to access the ressource)defget_user_location():user=get_authenticated_user()returnlocationService.get(user)

大摇大摆

如果要使用swagger,则需要注册自定义验证器。 这是rebar所需要的,以便能够将它们转换为正确的招摇security definition。 如果使用Cookie身份验证,请注意swagger 2.0确实支持这种身份验证方法。它将注册为Cookie头。

fromflask_rebar_auth0importregister_authenticatorsregister_authenticators(registry)

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

推荐PyPI第三方库


热门话题
在数据库中存储密码的java加密方法   java正则表达式否定整个正则表达式   java为什么要得到这个Hashmap输出?   看不到玻璃鱼爪哇SE 6   类对象包装器中的Java基本数据字段   java从文本文件中读取整数并存储到单独的变量中?(扫描仪)   优化大型Java数据阵列的处理和管理   如何使用Java XML包装类创建对象   java为ExecutorService invokeAll()创建包装器   java如何在Android Studio 1.0.0中设置Facebook SDK?获取SDK位置未找到错误   java在尝试从线程启动动画时调用了FromErrorThreadException   java根据哈希确认文件内容   通过java在neo4j中获取索引值相同的所有节点?   java为什么我的Validare邮政编码(布尔)程序返回false?   java会话自动从servlet/jsp生成,尽管存在以下条件:<%@page session=“false”%>   创建新LANsocket时拒绝java连接   java如何多线程更新由sql代码更新的数据库?   安卓 Java使用类作为集合来添加项   安卓为什么我的清单文件不声明java包?