用于处理外部标识的django中间件。

django-identity-external的Python项目详细描述


简化外部身份消费的中间产品集 用django web框架建立web项目中的信息。

identity.external.persistenremoteusermiddlewarevar

当非标准(不同于REMOTE_USER)环境变量为 用于传递有关外部身份验证用户的信息 中间件可用于自定义变量名,而无需编写 python代码。

例如,当使用来自某个身份验证的信息时 http代理,http请求头值作为前缀HTTP_传递 环境变量。如果经过身份验证的用户名位于X-Remote-User http请求头,在^{tt4}中可用$ 环境变量。正在将变量REMOTE_USER_VAR设置为 HTTP_X_REMOTE_USER,例如使用apache http server指令

SetEnv REMOTE_USER_VAR HTTP_X_REMOTE_USER

并启用identity.external.PersistentRemoteUserMiddlewareVarin MIDDLEWARE之后的列表 django.contrib.auth.middleware.AuthenticationMiddleware喜欢

MIDDLEWARE = [
        ...
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'identity.external.PersistentRemoteUserMiddlewareVar',
        ...
]

将运行django.contrib.auth.middleware.PersistentRemoteUserMiddleware 值来自环境变量HTTP_X_REMOTE_USER

identity.external.remoteuserattrmidware

当用户通过外部身份验证时,例如通过 django.contrib.auth.middleware.RemoteUserMiddlewaredjango.contrib.auth.middleware.PersistentRemoteUserMiddleware,附加 外部身份验证源可以提供用户属性。

这个中间件将更新用户的电子邮件地址、名字和姓氏, 和组成员资格,组的前缀是ext:with information coming 从环境变量

  • REMOTE_USER_EMAIL
  • REMOTE_USER_FIRSTNAME
  • REMOTE_USER_LASTNAME
  • REMOTE_USER_GROUP_N
  • REMOTE_USER_GROUP_1REMOTE_USER_GROUP_2,…
  • REMOTE_USER_GROUPS

其中,这些变量的REMOTE_USER前缀可以用 REMOTE_USER_VAR环境变量,就像 identity.external.PersistentRemoteUserMiddlewareVar

位于外部组admins(从而被分配到组的用户 ext:admins在django中)也将获得is_staff标志集,因此 将能够登录到管理应用程序。

必须在django数据库中为 要在其中更新的用户成员身份。

MIDDLEWARE列表中,此中间件必须在 验证中间件,例如

MIDDLEWARE = [
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.PersistentRemoteUserMiddleware',
    'identity.external.RemoteUserAttrMiddleware',
    ...
]

另请参见

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

推荐PyPI第三方库


热门话题
java使用双一元运算符vs函数<Double,Double>   由于存在巨大的休眠,超出了java GC开销限制   java更改Tomcat中Apache文件上载的临时目录   当PDF位于本地驱动器时,javascript无法在IE中显示PDF   java hibernate如何加载瞬态对象?   java如何判断包属于哪个模块?   创建Word文档时java文件已损坏   java如何将Eclipse中的每个开放项目导出为自己的JAR?   java将带有getter和setter的变量添加到现有类中   java高效地发送多封电子邮件   java读/写。具有特殊字符的txt文件   java如何在导出到jar时包含opencv本机库   java Xstream在未完成时停止写入文件   if语句Java:无法检查布尔值是否为null   文本Java:读取txt文件并将其保存在字符串数组中,但不带反斜杠(空格)?   java如何使用正则表达式替换字符串的一部分   通过Java远程运行Powershell脚本   filenames带有xml文件空指针异常的Java文件uri