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"

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

  • 相关阅读:
    Cryptography中的对称密钥加解密:fernet算法探究
    HTTPS的工作原理
    最近要写的博客
    浅谈路由器软硬件架构
    组管理、权限管理、定时任务调度、磁盘分区
    matplotlib数据可视化
    tensorflow实现简单的卷积神经网络
    tensorflow实现简单的感知机
    tensorflow实现简单的自编码器
    区域生长算法(手动选取种子点)MATLAB
  • 原文地址:https://www.cnblogs.com/xiami303/p/2637976.html
Copyright © 2011-2022 走看看