Aqui funciona perfeitamente, não expus todos os detalhes obviamente, no meu
controller template tenho um código que verifica se ta logado, se sim
regenerate, se não redireciona para login informando que não tem acesso
impossibilitando o acesso direto. Este 60000 no js é para fazer a pesquisa
se a sessão expirou de 1 em 1 minuto, não tem relação com o tempo da
sessão, o tempo da mesma é definido num config, e é regenerado a cada
movimentação de página.


Em 6 de julho de 2012 12:37, felipe bastos <[email protected]> escreveu:

> Opa ..
>
> Eu tenho um Controller_Restrito_Template que verifica se esta logado .. ai
> nas partes restritas .. basta extender.
>
> Eu faria um ajax semelhante, mas verificaria a ultima pagina acessada ..
> ou uma especifica para "contar" usuarios online. Isso nos controllers
> restritos ja que todos os meus sistemas sao de acesso restrito.
> Em 06/07/2012 11:48, "Waldson Patricio" <[email protected]>
> escreveu:
>
> Se o tempo da sessão for maior que 60000 sua sessão nunca irá expirar
>> (Session::instance() renova a sessão).
>> Seu tempo tem que ser maior que o lifetime da sessão e você também
>> precisa saber se o cara estava logado antes
>> (se eu acessar diretamente vai redirecionar e mostrar a mensagem que eu
>> estava logado)
>>
>>
>> 2012/7/6 Douglas J.A.M <[email protected]>
>>
>>> Vlw galera fiz uma solução legalzinha, obrigado a todos
>>>
>>>
>>>  protected function expirou() {
>>>         if (Session::instance()->get('usuario') == NULL) {
>>>             Helper_NOTIFICACAO::addNotificacao('info', 'Sua sessão
>>> expirou por inatividade!');
>>>             $retorno = true;
>>>         } else {
>>>             $retorno = false;
>>>         }
>>>
>>>         $jsonEncoded = json_encode($retorno);
>>>          $this->request->headers('Content-type', 'application/json;
>>> charset=' . Kohana::$charset);
>>>         $this->response->body($jsonEncoded);
>>>     }
>>>
>>> //js on reayd
>>> setInterval(function(){expirouSessao()}, 60000);
>>>
>>> // funcao js
>>>
>>> function expirouSessao() {
>>>
>>>     var retorno = false;
>>>     $.ajax({
>>>         type: "POST",
>>>         url: '/ajax.php?action=expirou',
>>>         data: {},
>>>         dataType: "json",
>>>         success: function(data) {
>>>             if(data){
>>>                 retorno = true;
>>>             }
>>>         },
>>>         complete: function(){
>>>             if(!retorno){
>>>                 console.log('não expirou...')
>>>             } else {
>>>                 console.log('expirou...')
>>>             }
>>>         }
>>>     });
>>>
>>>
>>>
>>>
>>>
>>> Em quarta-feira, 4 de julho de 2012 21h45min19s UTC-3, felipebastosweb
>>> escreveu:
>>>
>>>> Pow cara .. nunca me liguei nisso ..
>>>>
>>>> Eu simplesmente verifico o usuario no banco e salvo a sessao.
>>>>
>>>> Depois, simplesmente confiro que a sessao existe.
>>>>
>>>> Se a sessao nao existir mais, redireciono pra pagina de login e informo
>>>> que a sessao expirou por inatividade.
>>>>
>>>> Tem a funcao de login e a de logado.
>>>>
>>>> Esta tao transparente .. q nem sei o que rola por tras :)
>>>>
>>>> code.google.com/p/phpscrum/**source/trunk/application/**
>>>> controller/auth.php<http://code.google.com/p/phpscrum/source/trunk/application/controller/auth.php>
>>>>
>>>> Acho que o link é esse ... o codigo ta super simples.
>>>> Em 04/07/2012 21:32, "Douglas J.A.M" <[email protected]> escreveu:
>>>>
>>>>> Alguém aí sabe alguma maneira fácil de implementar isso? Onde quando o
>>>>> lifetime da sessão expirar, e ela for destruida, exibir uma mensagem para 
>>>>> o
>>>>> usuário quando ele atualizar a página informando que por inatividade foi
>>>>> deslogado, sei que existem maneiras, mas as que conheço são meio
>>>>> complicadas de se implementar, como o intercambio de cookie + session, ou
>>>>> session + db...
>>>>>
>>>>> --
>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>>>> Php" dos Grupos do Google.
>>>>> Para postar neste grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>> kohana-php+unsubscribe@**googlegroups.com<kohana-php%[email protected]>
>>>>> .
>>>>> Para obter mais opções, visite esse grupo em http://groups.google.com/
>>>>> **group/kohana-php?hl=pt-BR<http://groups.google.com/group/kohana-php?hl=pt-BR>
>>>>> .
>>>>>
>>>>
>>> Em quarta-feira, 4 de julho de 2012 21h45min19s UTC-3, felipebastosweb
>>> escreveu:
>>>
>>>> Pow cara .. nunca me liguei nisso ..
>>>>
>>>> Eu simplesmente verifico o usuario no banco e salvo a sessao.
>>>>
>>>> Depois, simplesmente confiro que a sessao existe.
>>>>
>>>> Se a sessao nao existir mais, redireciono pra pagina de login e informo
>>>> que a sessao expirou por inatividade.
>>>>
>>>> Tem a funcao de login e a de logado.
>>>>
>>>> Esta tao transparente .. q nem sei o que rola por tras :)
>>>>
>>>> code.google.com/p/phpscrum/**source/trunk/application/**
>>>> controller/auth.php<http://code.google.com/p/phpscrum/source/trunk/application/controller/auth.php>
>>>>
>>>> Acho que o link é esse ... o codigo ta super simples.
>>>> Em 04/07/2012 21:32, "Douglas J.A.M" <[email protected]> escreveu:
>>>>
>>>>> Alguém aí sabe alguma maneira fácil de implementar isso? Onde quando o
>>>>> lifetime da sessão expirar, e ela for destruida, exibir uma mensagem para 
>>>>> o
>>>>> usuário quando ele atualizar a página informando que por inatividade foi
>>>>> deslogado, sei que existem maneiras, mas as que conheço são meio
>>>>> complicadas de se implementar, como o intercambio de cookie + session, ou
>>>>> session + db...
>>>>>
>>>>> --
>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>>>> Php" dos Grupos do Google.
>>>>> Para postar neste grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>>> kohana-php+unsubscribe@**googlegroups.com<kohana-php%[email protected]>
>>>>> .
>>>>> Para obter mais opções, visite esse grupo em http://groups.google.com/
>>>>> **group/kohana-php?hl=pt-BR<http://groups.google.com/group/kohana-php?hl=pt-BR>
>>>>> .
>>>>>
>>>>  --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para ver esta discussão na web, acesse
>>> https://groups.google.com/d/msg/kohana-php/-/1YZm5DRRONYJ.
>>>
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>>  --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
>  --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>

-- 
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos 
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para 
[email protected].
Para obter mais opções, visite esse grupo em 
http://groups.google.com/group/kohana-php?hl=pt-BR.

Responder a