cookie,session,token
2021/4/12 10:57:50
本文主要是介绍cookie,session,token,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
cookie,session,token扫盲
1 cookie:是保存到客户端浏览器上的键值对 -如果不加密,是不安全的(可能被窃取,篡改) 2 session:存在服务端的键值对 -用户登录后,给用户分配一个随机字符串(会话标识:session id),用户存到cookie中 -在服务端以刚刚随机字符串为key,value是字典,放用户信息 3 token:三段式(jwt:json web token)(服务端不存了) {公司信息。。}.{name:lqz,id:10}.asdfasasf
Django中cookie 的使用
1 设置cookie #四件套之一 obj.set_cookie('key','value') 2 获取cookie request.COOKIES.get('key') 3 更新cookie #四件套之一 obj.set_cookie('key','value') 4 删除cookie obj.delete_cookie('is_login') 5 cookie的过期时间 -浏览器会管理cookie,到时间,它会自动删除,10s过期 -obj.set_cookie('key','value',expires=10) -如果不写,关闭浏览器,cookie就失效了 -obj.set_cookie('key','value') 6 对cookie进行加盐 obj.set_signed_cookie('nb','yes','123',expires=1000) 7 获取加盐的cookie nb=request.get_signed_cookie('nb',salt='123')
Django中session的使用
1 设置session request.session['name']='lqz' request.session['is_login'] = True ''' 1 生成一个随机字符串afdsfdasfs,一旦有,就是更新操作 2 把随机字符串放到cookie中:obj.set_cookie('sessionid','afdsfdasfs') 3 把name=lqz放到django_session表中 session_key session_data date afdsfdasfs {name:'lqz',is_login:True} 时间 ''' 2 获取session name=request.session.get('name') is_login=request.session.get('is_login') 3 更新session #四件套之一 request.session['name']='abc' 4 删除session del request.session['name'] request.session.delete() # 删除数据库 request.session.flush() # cookie和数据库都删
session的其他方法
# 获取、设置、删除Session中数据 request.session['k1'] request.session.get('k1',None) request.session['k1'] = 123 request.session.setdefault('k1',123) # 存在则不设置 del request.session['k1'] # 所有 键、值、键值对 request.session.keys() request.session.values() request.session.items() request.session.iterkeys() request.session.itervalues() request.session.iteritems() # 会话session的key(随机字符串) request.session.session_key # 将所有Session失效日期小于当前日期的数据删除 request.session.clear_expired() # 检查会话session的key在数据库中是否存在 request.session.exists("session_key") # 删除当前会话的所有Session数据(只删数据库) request.session.delete() # 删除当前的会话数据并删除会话的Cookie(数据库和cookie都删)。 request.session.flush() 这用于确保前面的会话数据不可以再次被用户的浏览器访问 # 设置会话Session和Cookie的超时时间 request.session.set_expiry(value) * 如果value是个整数,session会在些秒数后失效。 * 如果value是个datatime或timedelta,session就会在这个时间后失效。 * 如果value是0,用户关闭浏览器session就会失效。 * 如果value是None,session会依赖全局session失效策略。
session的其他配置(配置文件中)
1. 数据库Session SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认) 2. 缓存Session SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎 # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置 SESSION_CACHE_ALIAS = 'default' 3. 文件Session SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 引擎 # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir() SESSION_FILE_PATH = None 4. 缓存+数据库 SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' # 引擎 5. 加密Cookie Session SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' # 引擎 其他公用设置项: # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认) SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存的路径(默认) SESSION_COOKIE_PATH = "/" # Session的cookie保存的域名(默认) SESSION_COOKIE_DOMAIN = None # 是否Https传输cookie(默认) SESSION_COOKIE_SECURE = False # 是否Session的cookie只支持http传输(默认) SESSION_COOKIE_HTTPONLY = True # Session的cookie失效日期(2周)(默认) SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # 是否关闭浏览器使得Session过期(默认) SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否每次请求都保存Session,默认修改之后才保存(默认) SESSION_SAVE_EVERY_REQUEST = False
这篇关于cookie,session,token的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01UniApp 中组件的生命周期是多少-icode9专业技术文章分享
- 2024-11-01如何使用Svg Sprite Icon简化网页图标管理
- 2024-10-31Excel数据导出课程:新手从入门到精通的实用教程
- 2024-10-31Excel数据导入课程:新手入门指南
- 2024-10-31RBAC的权限课程:新手入门教程
- 2024-10-31Svg Sprite Icon课程:新手入门必备指南
- 2024-10-31怎么配置 L2TP 允许多用户连接-icode9专业技术文章分享
- 2024-10-31怎么在FreeBSD上 安装 OpenResty-icode9专业技术文章分享
- 2024-10-31运行 modprobe l2tp_ppp 时收到“module not found”消息提醒是什么-icode9专业技术文章分享
- 2024-10-31FreeBSD的下载命令有哪些-icode9专业技术文章分享