允许匿名用户仅通过访问URL登录

django-loginurl的Python项目详细描述


这是django的一个简单应用程序,允许匿名访问者 仅通过访问URL以用户身份登录。

默认情况下,URL仅有效一次,不能多次使用。 涉及访问次数和/或有效期的其他计划可以 也被创造出来。例如,可以创建一个登录url 在下周使用此应用程序之前,仅5次访问有效。

配置

  1. 将django loginurl应用程序添加到django项目中。修改您的 settings.py如下:

    INSTALLED_APPS = (
        ...
        'loginurl',
        ...
    )
    
  2. 将此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

  3. 将应用程序的urls.py包含到项目中。

    urlpatterns = patterns('',
        ...
        (r'^loginurl/', include('loginurl.urls')),
        ...
    )
    

    这将使对loginurl/的请求由django loginurl处理。 如果配置放在项目的urls.py中,则登录 URL将如下所示:

    http://example.com/loginurl/a-secret-key
    

计划任务

要使数据库不受过期密钥的影响,计划的任务需要 准备好了。此任务应执行以下操作之一。

  1. 从django的管理脚本调用loginurl_cleanup命令,或
  2. 打开将触发清除的特殊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.

http://www.epiwork.eu/

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

推荐PyPI第三方库


热门话题
java Android:在ListView上使用setOnItemClickListener   使用Netbeans 7.0连接到SQL Server的java正在挂起   java Spring3依赖项注入不适用于mule   java Flink SQL结果字段与LocalDateTime上请求的类型错误不匹配   java找不到文件的结尾   考虑到NamingStrategy,java有没有办法将字符串转换为JsonNode?   使用Netbeans/ant部署java(命令行)应用程序   java如何修复Spring引导多部分上载中的“所需请求部分不存在”   java在应用程序启动时通过引用获取映射未知目标实体属性异常   java形状旋转问题Java2d   Weblogic服务器上的java ExecuteAndWaitInterceptor问题   JavaSpringBoot:project将图像保存在错误的路径中,并且在使用IDEIntellji打开时不显示图像   类向java接口添加方法   Swing组件上的Java 7泛型   sql server如何从java获取用户名。sql。联系   java如何检查该行是否与正则表达式(regex)冲突?   java如何在spring引导安全中为计数失败登录设置验证登录为false   图像如何在Java中使PNG的白色透明?