Re: bamboo中关于Session操作的API更新
- From:
- Tang Daogang
- Date:
- 2012-05-08 @ 10:04
今天我估计把cookie和session的关系理清了:
如下:
1. 在settings.lua中如果不写 expiration=nnn,则在关闭浏览器后,cookie自动过期(session会默认保存一天);
2. 在settings.lua中如果写 expiration=nnn,则cookie和session过期时间都会设成nnn秒(绝对过期);
3. 在settings.lua里面有expiration=nnn,
然后,又设置了relative_expiration=true后,则是相对过期,在最后一次操作nnn秒后才过期;
4.
在settings.lua里面有expiration=nnn,且设置了open_custom_expiration=true后,则可以对某一个session进行精确的过期时间设定,设定时使用
Session:setExpiration函数;
5.
在settings.lua里面有expiration=nnn,且设置了open_custom_expiration=true,且已经对某一个session进行精确的过期时间设定mmm后,如果没有设置relative_expiration,则此cookie和session将会在mmm秒后过期(绝对过期);
6. 在settings.lua里面有expiration=nnn,且设置了open_custom_expiration=true,且已经对某
一个session进行精确的过期时间设定mmm后,如果设置了relative_expiration=true,则此cookie和session将会在最后一次操作的
mmm秒后过期(相对过期);
7. 如上即是我想到的所有情况。
上述情况,我想已经能cover所有各类的登录设定了吧。比如,(保存登录)永久不过期,实际上相当于设置一个相当长的时间(30年,100年)。
2012/5/7 Tang Daogang <daogangtang@gmail.com>
> 补充一个API:
>
> Session:getUserHash(user)
>
> 这个函数用于根据用户找到其对应的session_id。注,如果同一用户有多处登录,只返回最后一次的登录session_id。
>
>
> 底层机制:
> 在底层,当用户登录时,会建立一个user_id与session_id的反向hash,退出时清除。
>
>
>
> 2012/5/7 Tang Daogang <daogangtang@gmail.com>
>
>> 对bamboo的Session增强了一些功能:
>>
>> 主要方面:
>> 1. 提供了对其它session的操作。没有session_id额外参数的话,默认对自己进行操作;
>> 2. 提供了对某一个session设置过期时间的精确的API;
>>
>> 目前的几个API功能如下:
>>
>> Session:get(session_id)
>> 获取session_id所指session的所有数据
>>
>> Session:setKey(key, value, st, session_id)
>> 对session_id所指session存储键值对,可以存储'string', 'list', 'set', 'zset'类型的数据,由st指定。
>>
>> Session:getKey(key, session_id)
>> 从session_id所指session取key的值
>>
>> Session:delKey(key, session_id)
>> 从session_id所指session删除key和key的值
>>
>> Session:del(session_id)
>> 删除session_id所指session
>>
>> Session:setGlobalExpiration(seconds)
>> 设置全局过期时间,影响后面的所有session过期操作。
>>
>> Session:setExpiration(seconds, session_id)
>> 对session_id所指session设置过期时间。
>>
>>
>>
>> --
>> Nothing is impossible.
>>
>>
>
>
> --
> Nothing is impossible.
>
>
--
Nothing is impossible.
Re: bamboo中关于Session操作的API更新
- From:
- Tang Daogang
- Date:
- 2012-05-09 @ 02:07
接着,另外一个问题。 用户单线登录全局设置。
现在,只要在settings.lua里面写一个
user_single_login = true
就可以实现用户单线登录了。
2012/5/8 Tang Daogang <daogangtang@gmail.com>
> 今天我估计把cookie和session的关系理清了:
>
> 如下:
>
> 1. 在settings.lua中如果不写
> expiration=nnn,则在关闭浏览器后,cookie自动过期(session会默认保存一天);
> 2. 在settings.lua中如果写 expiration=nnn,则cookie和session过期时间都会设成nnn秒(绝对过期);
> 3. 在settings.lua里面有expiration=nnn,
> 然后,又设置了relative_expiration=true后,则是相对过期,在最后一次操作nnn秒后才过期;
> 4.
在settings.lua里面有expiration=nnn,且设置了open_custom_expiration=true后,则可以对某一个session进行精确的过期时间设定,设定时使用
> Session:setExpiration函数;
> 5.
>
在settings.lua里面有expiration=nnn,且设置了open_custom_expiration=true,且已经对某一个session进行精确的过期时间设定mmm后,如果没有设置relative_expiration,则此cookie和session将会在mmm秒后过期(绝对过期);
> 6. 在settings.lua里面有expiration=nnn,且设置了open_custom_expiration=true,且已经对某
>
一个session进行精确的过期时间设定mmm后,如果设置了relative_expiration=true,则此cookie和session将会在最后一次操作的
> mmm秒后过期(相对过期);
> 7. 如上即是我想到的所有情况。
>
>
> 上述情况,我想已经能cover所有各类的登录设定了吧。比如,(保存登录)永久不过期,实际上相当于设置一个相当长的时间(30年,100年)。
>
>
>
> 2012/5/7 Tang Daogang <daogangtang@gmail.com>
>
>> 补充一个API:
>>
>> Session:getUserHash(user)
>>
>> 这个函数用于根据用户找到其对应的session_id。注,如果同一用户有多处登录,只返回最后一次的登录session_id。
>>
>>
>> 底层机制:
>> 在底层,当用户登录时,会建立一个user_id与session_id的反向hash,退出时清除。
>>
>>
>>
>> 2012/5/7 Tang Daogang <daogangtang@gmail.com>
>>
>>> 对bamboo的Session增强了一些功能:
>>>
>>> 主要方面:
>>> 1. 提供了对其它session的操作。没有session_id额外参数的话,默认对自己进行操作;
>>> 2. 提供了对某一个session设置过期时间的精确的API;
>>>
>>> 目前的几个API功能如下:
>>>
>>> Session:get(session_id)
>>> 获取session_id所指session的所有数据
>>>
>>> Session:setKey(key, value, st, session_id)
>>> 对session_id所指session存储键值对,可以存储'string', 'list', 'set', 'zset'类型的数据,由st指定。
>>>
>>> Session:getKey(key, session_id)
>>> 从session_id所指session取key的值
>>>
>>> Session:delKey(key, session_id)
>>> 从session_id所指session删除key和key的值
>>>
>>> Session:del(session_id)
>>> 删除session_id所指session
>>>
>>> Session:setGlobalExpiration(seconds)
>>> 设置全局过期时间,影响后面的所有session过期操作。
>>>
>>> Session:setExpiration(seconds, session_id)
>>> 对session_id所指session设置过期时间。
>>>
>>>
>>>
>>> --
>>> Nothing is impossible.
>>>
>>>
>>
>>
>> --
>> Nothing is impossible.
>>
>>
>
>
> --
> Nothing is impossible.
>
>
--
Nothing is impossible.