現在のユーザーが匿名であるか認証されているかをプログラムで判断するにはどうすればよいですか?
より堅牢で記述的なコードのために、便利な User::isAnonymous()
メソッドを利用できます。
if (\Drupal::currentUser()->isAnonymous()) {
// Anonymous user...
}
$current= \Drupal::currentUser();
if (!$current->id()) {
// is visitor
}
else {
// is logged
}
isAnonymous()
は、サイトがPrivateTempStore
にデータを(たとえばフォームで)保存しているときに機能しない危険を保持しています。したがって、私は以下を好みます:
if (\Drupal::currentUser()->isAuthenticated()) {
// This user is logged in.
} else {
// This user is anonymous.
}