蟒蛇

auth0-python的Python项目详细描述


Latest version released on PyPIBuild statusTest coverageLicense

在这个存储库中,您将找到有关将auth0与python集成的所有信息。

什么是auth0?

auth0帮助您:

  • 使用multiple authentication sources添加身份验证, 比如google、facebook、microsoft account、linkedin、github、twitter、box、salesforce等等, 或企业标识系统,如windows azure ad、google apps、active directory、adfs或任何saml标识提供程序
  • 通过更传统的username/password databases添加身份验证。
  • 添加对同一用户的linking different user accounts的支持。
  • 支持生成签名的JSON Web Tokens以调用您的api并安全地传递用户标识
  • 分析用户登录的方式、时间和位置。
  • 从其他源中提取数据并通过JavaScript rules将其添加到用户配置文件中。

创建一个免费的auth0帐户

  1. 转到Auth0并单击“注册”。
  2. 使用google、github或microsoft帐户登录。

安装

可以使用以下命令安装auth0 python sdk。

pip install auth0-python

对于python3,请使用以下命令

pip3 install auth0-python

python 3.2和3.3已经达到了EOL,支持将在不久的将来被删除。

管理sdk用法

要使用管理库,您需要用域和Management API v2 token实例化auth0对象。请注意,这些令牌持续24小时,因此如果您经常需要它,您应该使用授权访问api的non interactive client的客户端凭据授权以编程方式请求它。例如:

fromauth0.v3.authenticationimportGetTokendomain='myaccount.auth0.com'non_interactive_client_id='exampleid'non_interactive_client_secret='examplesecret'get_token=GetToken(domain)token=get_token.client_credentials(non_interactive_client_id,non_interactive_client_secret,'https://{}/api/v2/'.format(domain))mgmt_api_token=token['access_token']

然后使用您获得的令牌,如下所示:

fromauth0.v3.managementimportAuth0domain='myaccount.auth0.com'mgmt_api_token='MGMT_API_TOKEN'auth0=Auth0(domain,mgmt_api_token)

Auth0()对象现在可以接受命令了! 让我们看看如何使用它来获得所有可用的连接。 (此操作要求令牌具有以下作用域:read:connections

auth0.connections.all()

它将生成类似于以下内容的连接列表:

[{'enabled_clients':[u'rOsnWgtw23nje2QCDuDJNVpxlsCylSLE'],'id':u'con_ErZf9LpXQDE0cNBr','name':u'Amazon-Connection','options':{u'profile':True,u'scope':[u'profile']},'strategy':u'amazon'},{'enabled_clients':[u'rOsnWgtw23nje2QCDuDJNVpxlsCylSLE'],'id':u'con_i8qF5DPiZ3FdadwJ','name':u'Username-Password-Authentication','options':{u'brute_force_protection':True},'strategy':u'auth0'}]
修改现有连接同样容易。我们改名吧 关于连接'con_ErZf9LpXQDE0cNBr'。 (令牌需要作用域:update:connections才能使其工作)

auth0.connections.update('con_ErZf9LpXQDE0cNBr',{'name':'MyNewName'})

就这样!使用连接端点的get方法,我们可以验证 改名是真的发生了。

modified_connection=auth0.connections.get('con_ErZf9LpXQDE0cNBr')

它返回如下内容

{'enabled_clients':[u'rOsnWgtw23nje2QCDuDJNVpxlsCylSLE'],'id':u'con_ErZf9LpXQDE0cNBr','name':u'MyNewName','options':{u'profile':True,u'scope':[u'profile']},'strategy':u'amazon'}

成功!

所有端点都遵循与connections相似的结构,并尝试遵循 尽可能靠近API documentation

身份验证sdk用法

身份验证sdk分为多个组件,模仿 API’s documentation。 例如:

fromauth0.v3.authenticationimportSocialsocial=Social('myaccount.auth0.com')s.login(client_id='...',access_token='...',connection='facebook')

可用的管理端点

  • 黑名单()(Auth0().blacklists
  • clients()(Auth0().clients
  • clientgrants()(Auth0().client_grants
  • connections()(Auth0().connections
  • deviceCredentials()(Auth0().device_credentials
  • 电子邮件()(Auth0().emails
  • emailTemplates()(Auth0().email_templates
  • 守护者()(Auth0().guardian
  • jobs()(Auth0().jobs
  • logs()(Auth0().logs
  • resourceservers()(Auth0().resource_servers
  • rules()(Auth0().rules
  • stats()(Auth0().stats
  • 租户()(Auth0().tenants
  • 票证()(^{TT21}$)
  • userblocks()(Auth0().user_blocks
  • users()(Auth0().users
  • usersbyemail()(Auth0().users_by_email

可用的身份验证终结点

  • 用户(authentication.Users
  • 数据库(authentication.Database
  • 委派(authentication.Delegated
  • 企业(authentication.Enterprise
  • 无密码(authentication.Passwordless
  • 社交(authentication.Social
  • API授权-获取令牌(authentication.GetToken
  • API授权-授权代码授权(^{TT32}$)

更改日志

请看CHANGELOG.md

问题报告

如果您发现了一个bug或者有一个功能请求,请在这个存储库问题部分报告它们。 请不要在公共GitHub问题跟踪程序上报告安全漏洞。 Responsible Disclosure Program详细说明了披露安全问题的过程。

作者

Auth0

许可证

这个项目是由麻省理工学院授权的。见LICENSE 文件以获取更多信息。

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

推荐PyPI第三方库


热门话题
java消除多个构造函数中的冗余   java如何准备和提供测试数据   java如何处理Selenium Chromedriver选择证书弹出确认?   java服务器在命名时中断。重新绑定   java如何从包含许多元素的对象中提取对象的单个元素   主方法上的java执行   用于输出棋盘的按钮的java GridLayout   java如何结合Web/移动用户身份验证   要打开以运行(windows+R)和执行命令的Java代码   java我在忘记密码的电子邮件发送过程中遇到以下错误err=javax。邮政AuthenticationFailedException这是我的代码   列出在使用泛型集合的用户定义类中实现的JAVA 8。排序()不起作用   java Apache POI写入时间大于24小时   java Hibernate通过另一个实体映射   使用Java在现有json文件中追加json对象   Spring批处理上的java停止处理   java为特定的mybatisspring映射器设置不同的执行器类型   java我想阅读html的内容,我需要用所需的文本对其进行更改