分享到 :

关于session的使用限制以及解决方案的说明

1. 背景说明

在OAuth认证过程以及OpenAPI调用过程中,多次会用到appid,appkey,access token等参数,需要把这些值存储起来。开发人员很容易想到用session来存储。  但是在正式网站运营环境中,我们并不建议使用session而是使用MySQL或者其他永久的存储来保存信息,以避免网站不止一台服务器的情况下,两次请求的sessoin信息可能不会保存在同一台服务器导致的访问出错等情况。

2. 使用session带来的问题

2.1 网站存在多个子域名的情况下如何共享session

默认情况下,子域名之间的session信息是不允许共享的。因此如果网站存在多个子域名,则有可能引发如下情况: 在登录过程用到了www.a.com,而在回调地址用到了www.i.a.com,由于session信息不能在两个子域名之间共享,导致用户访问回调地址出错。

2.2 同一个主域名不同服务器之间如何共享session

当网站服务器超过1台的时候,就出现了如何在不同服务器之间共享session信息的问题。

3. 解决方案

要解决如上问题,必须引入一个中间存储。数据库是一个非常合适的选择。

返回顶部