CakePHP 認証機能(CakeDC/Users)

インストール

composer require cakedc/users

設定

Security.salt設定

CakePHP インストール・設定/Security.salt設定」参照

ライブラリ読み込み

※~/config/bootstrap.php
Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);

テーブル作成

cd bin
cake migrations migrate -p CakeDC/Users

管理者ユーザ作成

cake users add_superuser
※パスワードをメモ

リダイレクト設定

※~/config/bootstrap.php
Configure::write('Users.config', ['users']);

※~/config/users.php
<?php
use Cake\Core\Configure;
use Cake\Routing\Router;

$config = [
  'Auth' => [
    ~
    ログイン後の遷移先
    URLを指定したが未ログインの為、ログイン画面へ飛ばされ、
    その後ログインに成功した場合はこの遷移先には飛ばずに最初の指定URLへ遷移する

    'loginRedirect' => [
      'plugin' => null,
      'controller' => 'Tests',
      'action' => 'index',
    ],
    CakeDCのユーザー一覧画面へ遷移させる場合
    'loginRedirect' => [
      'plugin' => 'CakeDC/Users',
      'controller' => 'Users',
      'action' => 'index',
    ],
    'logoutRedirect' => [
      'plugin' => null,
      'controller' => 'Tests',
      'action' => 'display', 'home',
    ]
  ],
];

return $config;

権限設定

※~/config/permissions.php
<?php
return [
  'Users.SimpleRbac.permissions' => [
    [
      'role' => 'user',
      'controller' => '*',
      'action' => "*",
    ],
    [
      'role' => 'superuser',
      'controller' => '*',
      'action' => "*",
    ],
  ]
];

メール設定

CakePHP インストール・設定/メール設定」参照

メールメッセージ
vendor\cakedc\users\src\Template\Email\html\~
vendor\cakedc\users\src\Template\Email\text\~
からコピーして配置する

src
└Template
 └Plugin
  └CakeDC
   └Users
    └Email
     └html
      └reset_password.ctp
      └social_account_validation.ctp
      └validation.ctp
     └text
      └reset_password.ctp
      └social_account_validation.ctp
      └validation.ctp

日本語化

日本語ファイル作成
※\vendor\cakedc\users\src\Locale\ja_JP\Users.po
msgid "Please enter your username and password"
msgstr "ユーザー名 / パスワードを入力して下さい"

日本語ファイルを読み込み
※config\bootstrap.php
ini_set('intl.default_locale', Configure::read('App.defaultLocale'));
↓ を追加
ini_set('intl.default_locale', 'ja_JP');

コントローラ

コンポーネントロード

※~Contoroller.php
public function initialize()
{
  parent::initialize();
  ~
  $this->loadComponent('CakeDC/Users.UsersAuth');
}

ビュー

ヘルパー読込

※~\src\View\AppView.php
public function initialize()
{
 $this->loadHelper('CakeDC/Users.User');
}

ログアウト
$this->User->logout();
ログアウト画面へのHTMLリンクが生成される

組込画面

ログイン画面
http://~/login

ログアウト画面
http://~/logout

管理者:ユーザー一覧
http://~/users/users/

管理者:ユーザー登録
http://~/users/users/add

ユーザー:登録画面
http://~/users/users/register

ユーザー:パスワードリセット画面
http://~/users/users/request-reset-password

コメントを残す

メールアドレスが公開されることはありません。