如何检查管理员用户是否登录到django网站或不登录NGINX

时间:2013-11-29 13:23:24

标签: django cookies nginx

我希望管理员用户登录或不登录nginx.conf文件 我需要这个用于我的具体要求。 我的尝试:

I tried to fetch COOKIES into nginx.conf file.
but when admin is logged out so cookies are changed so i am not able figure out that if a admin is logged in or not.

1 个答案:

答案 0 :(得分:0)

据我所知,这是不可能的。

Django默认使用加密的cookie,并将所有数据存储在数据库中的会话表中(也是加密的)。您可以检查用户是否在nginx中设置了cookie,但您无法验证该cookie值是否实际上意味着“管理员”或“随机的其他cookie值”。

此外,除非您使用自定义nginx模块来检查cookie的内容,否则您可能会冒险让nginx认为用户是管理员,而不是这种情况。

我不确定这里的用例是什么,但您可以尝试使用django中间件或寻找第三方插件而不是使用nginx。

如果要限制对特定文件的文件访问权限,例如仅限管理员的图片/ javascript /数据文件,您可以尝试使用HttpAccessKeyModule获取Nginx,只需为管理员生成自定义“网址”即可访问它们。

您还可以尝试查看:http://nginx.org/en/docs/http/ngx_http_auth_request_module.html并查看将支票委托给Django的某些部分,该部分只返回yes或No给nginx。

可能会有另一个nginx插件可以在django中为管理员用户添加/启用。但这需要你反思。随着django告诉nginx,用户是管理员。而不是nginx找到它自己。

希望这会以某种方式帮助你。