zoukankan      html  css  js  c++  java
  • django的用户认证管理,如何使用session(1)

    这几天打算做一个用户注册登陆验证,由于我没有使用django自身的数据库和model,这里也不想用它的user认证,因为只有天知道会不会有天老大说,我们不要用django了,给我移植一下吧。但是在这个架构上写东西,很多东西还是被它的安全机制所限制。

    打算用session存储user信息,用django的认证,就需要在数据库里“manage.py syncdb”一下生成很多auth相关的表,而且生成的user的password还是明码,这个对于安全机制没什么要求的人来说,这么多表和严格认证都是累赘。我为了使用本地file存储session,在settings.py里加上了:

    SESSION_ENGINE = 'django.contrib.sessions.backends.file'
    SESSION_FILE_PATH = "D:/learn/Monitor/static/data"

    但是,在view里我用request.session获取到的session竟然是[], 无论我是否修改了session值,到新页面仍然是[]; 而且HttpResponse和HttpResponseRedirect也不再听话,所有的设想都破灭了,甚至莫名的弹出了这样一个错误框:

    无头绪,但是任务还是要完成,改用django的用户认证得了,于是回来把admin相关的url.py,settings.py中的配置都修改回来:

    url.py:

    # Uncomment the next two lines to enable the admin:
    from django.contrib import admin
    admin.autodiscover()
    
    
    
     url(r'^admin/', include(admin.site.urls)),

    settings.py:

    MIDDLEWARE_CLASSES = (
        'django.middleware.common.CommonMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'djangomako.middleware.MakoMiddleware',
        # Uncomment the next line for simple clickjacking protection:
        # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
    )
    
    
    
    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        # Uncomment the next line to enable the admin:
        'django.contrib.admin',
        # Uncomment the next line to enable admin documentation:
        'django.contrib.admindocs',
    。。。。。

    然后“manage.py syncdb”生成了auth相关的表,并同时创建superuser:“ user:admin,password:admin”;

    最后打开“127.0.0.1:8000/admin”; 弹出了登陆框,输入用户名和密码,确认输入正确啊!!!可是仍然不让我进去!!!

    实在是晕了。。。。整了一上午,突然想起来我让session存在本地文件导致session访问不到,这个auth认证本来默认存在数据库的,而默认被我修改到file读取,而file完全读不到,即使输入了正确的用户名和密码,仍然就被无情的抛弃掉了,当然进不到用户登录成功的管理界面!原来是这个道理,于是: 我赶紧把

    settings.py 里的

    SESSION_ENGINE = 'django.contrib.sessions.backends.file'
    SESSION_FILE_PATH = "D:/learn/Monitor/static/data"

    删除掉,再试,总算是进去了,╮(╯▽╰)╭

  • 相关阅读:
    vue中的 computed 和 watch 的区别
    mysql8.0 初始化数据库及表名大小写问题
    sql server alwayson 调整数据文件路径
    zabbix 自定义监控 SQL Server
    mysql 创建用户及授权
    mysql 设置从库只读模式
    mysql8.0 主从复制安装及配置
    centos8.0安装mysql8.0
    centos8替换阿里数据源
    npm publish 报错 【you or one of your dependencies are requesting a package version that is forbidden by your security policy】
  • 原文地址:https://www.cnblogs.com/xiami303/p/2637976.html
Copyright © 2011-2022 走看看