如何在2小时后终止会话,并在浏览器关闭时也终止?

时间:2019-08-26 作者:Sudhir

我想在2小时后终止会话,也想在浏览器关闭时终止会话

add_filter(\'auth_cookie_expiration\', \'my_expiration_filter\', 99, 3);
function my_expiration_filter($seconds, $user_id, $remember){
    $expiration = 2*60*60; //UPDATE HERE;
    return $expiration;
}

1 个回复
SO网友:bueltge

这是正确的钩子。我还经常添加一些javascript,以激活表单中的复选框。在您的情况下,没有必要使用$accepted_args 参数–3–的add_filter() 钩子,因为您不使用任何参数,只需以秒为单位使用返回值作为整数。

if ( ! function_exists( \'keep_me_logged_in_for_1_year\' ) ) {

    add_filter( \'auth_cookie_expiration\', \'keep_me_logged_in_for_1_year\' );
    function keep_me_logged_in_for_1_year() {

        return 31556926; // 1 year in seconds
    }

    add_filter( \'login_footer\', \'set_default_true_on_checkbox\' );
    function set_default_true_on_checkbox() {
        ?>
        <script type="text/javascript">
        document.getElementById( \'rememberme\' ).checked = true;
        document.getElementById( \'wp-submit\' ).focus();
        </script>
        <?php
    }

}
如果您还想检查关闭的浏览器,那么需要通过javascript进行检查,js也应该通过挂钩添加login_footer. 看见this how to 了解其背后的想法。