{"action":"closed","issue":{"url":"https://api.github.com/repos/hivesolutions/appier/issues/11","repository_url":"https://api.github.com/repos/hivesolutions/appier","labels_url":"https://api.github.com/repos/hivesolutions/appier/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/hivesolutions/appier/issues/11/comments","events_url":"https://api.github.com/repos/hivesolutions/appier/issues/11/events","html_url":"https://github.com/hivesolutions/appier/issues/11","id":150320980,"number":11,"title":"Support for extending Appier sessions","user":{"login":"tsilva","id":26742,"avatar_url":"https://avatars.githubusercontent.com/u/26742?v=3","gravatar_id":"","url":"https://api.github.com/users/tsilva","html_url":"https://github.com/tsilva","followers_url":"https://api.github.com/users/tsilva/followers","following_url":"https://api.github.com/users/tsilva/following{/other_user}","gists_url":"https://api.github.com/users/tsilva/gists{/gist_id}","starred_url":"https://api.github.com/users/tsilva/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tsilva/subscriptions","organizations_url":"https://api.github.com/users/tsilva/orgs","repos_url":"https://api.github.com/users/tsilva/repos","events_url":"https://api.github.com/users/tsilva/events{/privacy}","received_events_url":"https://api.github.com/users/tsilva/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/hivesolutions/appier/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/hivesolutions/appier/labels/p-medium","name":"p-medium","color":"fbca04"},{"url":"https://api.github.com/repos/hivesolutions/appier/labels/triage","name":"triage","color":"5319e7"}],"state":"closed","locked":false,"assignee":{"login":"joamag","id":25441,"avatar_url":"https://avatars.githubusercontent.com/u/25441?v=3","gravatar_id":"","url":"https://api.github.com/users/joamag","html_url":"https://github.com/joamag","followers_url":"https://api.github.com/users/joamag/followers","following_url":"https://api.github.com/users/joamag/following{/other_user}","gists_url":"https://api.github.com/users/joamag/gists{/gist_id}","starred_url":"https://api.github.com/users/joamag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joamag/subscriptions","organizations_url":"https://api.github.com/users/joamag/orgs","repos_url":"https://api.github.com/users/joamag/repos","events_url":"https://api.github.com/users/joamag/events{/privacy}","received_events_url":"https://api.github.com/users/joamag/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2016-04-22T09:32:01Z","updated_at":"2016-04-22T11:02:11Z","closed_at":"2016-04-22T11:02:11Z","body":"## Description\r\n\r\nThere seems to be no friendly way of extending an Appier session. In some contexts, it's desirable to be able to extend the session indefinitely.\r\n\r\n## Solution\r\n\r\nThe expiration date is being set when the session object is being created. This date can be changed only by accessing the internal property directly. Probably there should be an `refresh()` method to easily refresh the session's expiration date (current date + default timeout).\r\n\r\nAlso, in `RedisSession` values are being stored with `SETEX`, therefore they are deleted by Redis when the timeout is reached. To extend the session in `RedisSession`, the value's expiration date must be extended using the `EXPIRE` command to provide a new timeout."}}