允许匿名用户仅通过访问URL登录
django-loginurl的Python项目详细描述
这是django的一个简单应用程序,允许匿名访问者 仅通过访问URL以用户身份登录。
默认情况下,URL仅有效一次,不能多次使用。 涉及访问次数和/或有效期的其他计划可以 也被创造出来。例如,可以创建一个登录url 在下周使用此应用程序之前,仅5次访问有效。
配置
将django loginurl应用程序添加到django项目中。修改您的 settings.py如下:
INSTALLED_APPS = ( ... 'loginurl', ... )
将此django loginurl应用程序的身份验证后端添加到 你的项目是settings.py。
AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'loginurl.backends.LoginUrlBackend', )
第一个身份验证后端是默认的,如果您的项目使用 Django的标准身份验证机制,您将需要它。
有关 后端。见 http://docs.djangoproject.com/en/dev/topics/auth/#other-authentication-sources
将应用程序的urls.py包含到项目中。
urlpatterns = patterns('', ... (r'^loginurl/', include('loginurl.urls')), ... )
这将使对loginurl/的请求由django loginurl处理。 如果配置放在项目的urls.py中,则登录 URL将如下所示:
http://example.com/loginurl/a-secret-key
计划任务
要使数据库不受过期密钥的影响,计划的任务需要 准备好了。此任务应执行以下操作之一。
- 从django的管理脚本调用loginurl_cleanup命令,或
- 打开将触发清除的特殊url,loginurl/cleanup/。 例如http://example.com/loginurl/cleanup/
您可以使用crontab或基于web的设置。每日或每周 任务应该足够了。
用法
如果您的应用程序需要创建一个一次性登录url,您需要 do正在使用用户对象作为参数调用loginurl.utils.create。 结果对象是具有 名为key的属性,该属性包含登录URL的唯一键。
import loginurl.utils def create_login_url(user): key = loginurl.utils.create(user) url = 'http://example.com/loginurl/%s' % key.key return url
确认
此代码是在 FET项目(授权协议编号:231807)。
Epiwork: developing the framework for an epidemic forecast infrastructure.