django的auth0身份验证后端

auth0db的Python项目详细描述


一、二、二、三、三、三、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、四、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、图片::https://img.shields.io/pypi/v/auth0db.svg
:目标:https://pypi.python.org/pypi/auth0db

…图片::https://img.shields.io/travis/bretth/auth0db.svg
:目标:https://travis ci.org/bretth/auth0db




>将django用户迁移到auth0

*免费软件:isc许可证

--



它是为将用户从django 1.4项目迁移到auth0而编写的,但它没有链接

为您的django项目提供内部数据库支持的身份验证。

此项目的主要目标是:

*提供一种简单的用户友好方法,用于将现有django用户迁移到旧的和最近的django项目的auth0数据库身份验证(我正在使用django 1.4)
*将用户名或电子邮件作为用户名django用户模型处理
*将django用户名登录迁移到电子邮件支持的auth0登录

非目标是处理用户迁移中的现有或建议的社会身份验证或提供注册工作流。如果您没有迁移用户,则此项目中的后端会破坏auth0的速率限制和ddos缓解的好处。


用户迁移过程
<


auth0已经提供了从现有项目的渐进迁移路径,只要您的django密码升级到bcrypt。如果您想使用该路由auth0 `记录该方法<;https://auth0.com/docs/connections/database/migrating>;`,但该路由可能需要订阅高级计划,并且仍然需要逐步升级所有本地密码才能首先使用bcrypt,这会破坏潜在的此方法的优点。

此项目采用的路径将是保留现有的登录方法、视图和模板,但在当前后端之前插入附加的auth0db migratetoauth0backend后端,这将允许您酌情使用其免费或其他计划。

迁移过程如下:

*用户根据migrateToAuth0后端进行身份验证。如果失败,用户将根据现有后端进行身份验证,如果在当前后端进行身份验证,则创建新的auth0用户。
*如果用户根据auth0进行身份验证,则如果在本地不存在auth0,则将在django中创建该用户。
*本地auth0用户模型保存AUTh0用户id,与新用户或现有用户有一对一关系,允许跟踪迁移。
*如果当前django用户需要重置其密码(通常通过电子邮件),则可以将替换的setpassword表单传递到标准django auth password\u reset\u confirm视图t只要在auth0用户和本地用户上设置一个新密码。
*auth0_迁移的管理命令将显示迁移的百分比

并将密码重置电子邮件发送给任何仍处于活动状态但在基于django的频繁用户中,您可能没有相应的auth0用户记录。

为避免对用户造成任何潜在的干扰,在auth0上创建或更新密码的任何方法也应更新本地用户模型,直到切换完成,此时您可以安全地删除migrateToAuth0后端。

永远不会,所以你需要一个计划来处理这些问题。


安装auth0db::

$pip install auth0db

将*auth0db*添加到*已安装的应用程序*django设置中,并将*auth0db.backends.migratetoauth0backend*添加为第一个身份验证后端:

身份验证后端=[
"auth0db.backends.migratetoauth0backend",
'django.contrib.auth.backends.modelbackend'
]


nt.

较新的auth0管理api需要一个json web令牌(jwt),它允许您限制django项目可以访问的api的范围。要获取此信息:

-登录auth0.com
-转到他们的管理api文档(https://auth0.com/docs/api/v2)
-在用户终结点上添加用于创建、读取和更新的作用域。
-为auth0用户的jwt设置复制生成的"jwt"令牌。

数据库"连接"名称,用于存储用户、常用API密钥和应用程序域。

django设置文件中需要以下设置:

_id"
auth0_user_jwt='对用户具有CRU权限的jwt'
auth0_connection="用户名密码身份验证"或您的任何名称

连接设置


username field="username"默认值

因为我们需要动态设置用户模型的外键,所以您需要在项目中创建一个包文件夹,并使用适当的迁移设置指向它进行数据库迁移。我建议将它与其他本地应用程序放在一起,并在south/django查找所有迁移文件夹时给它起一个不会冲突的名称。在本例中,我们的项目文件夹是*django project*,因此我们将创建"djangoproject.auth0db_migrations",其中包含*uuuu in it_uuu.py*。





django pre 1.7,其中安装了
south_u migrations模块{
"auth0db":"djangoproject.auth0db_migrations",
}

#django>;=1.7
迁移模块={
'auth0db':'djangoproject.auth0db_u迁移',
}



>现在创建auth0db的初始迁移并迁移它:

django pre 1.7,安装south
./manage.py schemamigration--初始auth0db

django>;=1.7
./manage.py makemigration auth0db

migrations文件夹中现在应该有初始迁移。
::
迁移应用程序!
./manage.py migrate auth0db



一旦迁移,auth0 user模型将保存用户id及其相应的auth0\u id,可用于跟踪迁移。


credits
——


此包是使用cookiecutter和"audreyr/cookiecutter pypackag"创建的通用电气项目模板。_ Cookiecutter:https://github.com/audreyr/Cookiecutter
。_` audreyr/cookiecutter pypackage`:https://github.com/audreyr/cookiecutter pypackage


==
=
history
==



0.1.0(2016年5月11日)
----

*初始版本

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

推荐PyPI第三方库


热门话题
Android:如何写入特定行,Java   Java中从欧元货币字符串中删除空格的数字   Java非均匀多维数组   解密AES时出现java空指针异常   java ConcurrentModificationException尝试移除列表上的所有内容时(非迭代)   Java数学库计算日志   java ISO8601,使用Jackson以毫秒表示json   避免副作用的java最佳实践   java获取JMeterException:调用bsh方法时出错:未定义参数:saa。使用beanshell取样器时   使用javascript将会话从一个jsp页面传输到另一个jsp页面   java在列表中组合相邻元素   java多行JTextPane   java Hibernate映射文件连接两个表而不定义关系?   如何使用Ajax、Java和Spring框架将文件从网页上传到Google云存储   多线程多线程Java中producerconsumer代码的多线程没有提供正确的输出?