説明
wp_set_auth_cookie() は、ユーザーの認証Cookieを設定し、ログイン状態にする関数です。
基本構文
wp_set_auth_cookie( int $user_id, bool $remember = false, bool|string $secure = '', string $token = '' ): void
引数
$user_id:ユーザーID$remember:ログイン状態を保持するか$secure:SSL専用Cookieにするか$token:セッショントークン
戻り値
戻り値はありません。
使い方(サンプル)
wp_set_current_user( 5 );
wp_set_auth_cookie( 5 );
注意点
- 出力が始まる前(
headers already sentエラーを避ける)に呼びます。 - 認証処理の誤用はセキュリティ上の問題になります。信頼できる検証を行った後にだけ使います。
実務での使いどころ
- 認証したユーザーを、ログインした状態にするとき(独自のログイン処理)。
- 外部サービスの認証後に、WordPressへログインさせるとき。
よくあるミスと対処
- 出力を始めたあとに呼び、「headers already sent」になり、Cookieが設定されない。
- パスワードなどの認証をせずに、呼んでいる。この関数は、認証を行わない。
wp_set_current_user()を併せて呼んでいない。そのリクエストの間は、まだログインしていない状態になる。
NG例
wp_set_auth_cookie( $user_id ); // 認証なしに、ログイン状態にしている
OK例
$user = get_user_by( 'email', $email );
if ( $user && wp_check_password( $password, $user->user_pass, $user->ID ) ) {
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID );
}
使い分け早見表
| 関数 | 役割 |
|---|---|
wp_set_auth_cookie() |
ログインのCookieを設定する(認証は行わない) |
wp_signon() |
認証し、ログインする(Cookieも設定) |
wp_set_current_user() |
そのリクエストの間だけ、現在のユーザーを設定する |
関連項目
wp_set_current_user()、wp_signon()
公式リファレンス:wp_set_auth_cookie() | Function | WordPress Developer Resources

コメント