Django 让用户自动登录

希望能得到更多用户的反馈和需求,开始在社区网络中推 idcops 这个软件。idcops是采用django开发的一个用于IDC机房管理的软件。

测试地址: https://idcops.iloxp.com/

但通过看网站统计分析,虽然访问用户极少,但网站跳出率不会超过10%(这是我做个好几个网站跳出率最低的一个网站了)

从分析看出,还有好一部分用户被拦在登录认证页面。

URL: https://idcops.iloxp.com/accounts/login/

如下图:

idcops_login.jpg

所以,得找个方法让用户能够自动登录到测试的管理系统里面来。

其实也就几行代码,甚至你还可以指定特有参数来限定是否要自动登录,比如url中加参数: ?autologin=true或者 ?source=test 等等自己指定的参数,然后在代码中做判断是否满足自动登录的条件而执行。

具体代码片段如下:

    def dispatch(self, request, *args, **kwargs):
        from django.contrib.auth import authenticate, login
        user = authenticate(request, username='admin', password='admin123')
        if user is not None and not request.user.is_authenticated:
            messages.info(request, """当前为测试用户,已为您自动登录。"""
                          """登录地址:https://idcops.iloxp.com/accounts/login/"""
                          """账户: admin 密码: admin123""")
            login(request, user)
        ....

因此系统比较大,我这里是采用mixins的写法看下面处理用户基本请求mixin代码:

idcops_base_required_mixins.jpg

这样,所有未登录的用户第一次进来之后直接就登录了,登录后给用户提示信息如下:

logined.jpg

相关阅读RelatedRead

Django博客archives归档页面查询优化

将WordPress博文迁移到django博客

django-idcops 数据中心运维管理平台

Django中利用xlwt将Model中的数据写入excel表格

无心朝政,列表功能分析下

Windows批处理批量删除redis键值

Django App通用admin.py

暂无评论添加评论