web-dev-qa-db-ja.com

好きなだけユーザーをログインさせ続ける

私はWordPressをベースにしたキオスクWebアプリケーションを実装しています。キーとなるいくつかの条件があります。それらはユーザーがログインしているかどうかに基づいて動作します。

ユーザーが[記憶している]をクリックすると、14日間ログインしたままになることを認識しています。

ただし、キオスク経由でログインしたユーザーはできるだけ長くログインしたままにしておきます。

私はおそらく1ヶ月を考えていました。

設定できる期間に制限はありますか? 2ヶ月に設定できますか? 3ヶ月? 4ヶ月?実際のCookieを10年以上に設定することは可能ですが、WPに独自の制限があるかどうかはわかりません。

私はこれを設定するのに役立つコードの断片も見つけましたが、それがうまくいくかどうかを知る方法がわからない、私がそれを見つけた記事は2歳です...

// keep users logged in for longer in wordpress
function wcs_users_logged_in_longer( $expirein ) {
    // 1 month in seconds
    return 2628000;
}
add_filter( 'auth_cookie_expiration', 'wcs_users_logged_in_longer' );

ありがとうございました。

4
Uriahs Victor

あなたが見つけたものは実際には完全に正確です。後方互換性へのWPのコミットメントでは、動作を停止することはそれほど一般的ではありません。

このフィルタは wp_set_auth_cookie() で期間を計算するのに使われます。結果の値はPHPの setcookie() で使用されます。

ドキュメンテーションに具体的な制限の記述はないので、実際には値はUnixタイムスタンプの整数範囲によって制限されています(実際には現時点で - 2038年の年月日).

だからあなたはかなりWP側に設定されています、しかし私はブラウザがそれをどう扱うかについても調べたいです。私は開発の外で実際に使用される余分な有効期限について聞いたことがないと思います。それでそれはよくカバーされたトピックではありません。

3
Rarst

私はこの質問が古いことを知っていますが、誰かが(私がしたように)それを横切ってつまずくのを恐れています。

私は最近、ユーザーをWPにログインさせたままにしたいという同じ問題を抱えていたので、それを行うためのプラグインを作成しました。

見て、私はそれが役立つことを願っています: https://wordpress.org/plugins/wp-persistent-login/

0
lukeseager