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
※パスワードをメモ
cake users add_superuser -u (ãƒã‚°ã‚¤ãƒ³ID) -p (パスワード)
リダイレクトè¨å®š
外部ファイル指定
※~/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' => 'Test',
      'action' => '*',
    ],
    [
      スーパーユーザーã¯å…¨ã¦ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©ã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã«ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½
      'role' => 'superuser',
      'controller' => '*',
      'action' => '*',
    ],
  ]
];
※~Contoroller.php
public function initialize()
{
  ~
  ãƒã‚°ã‚¤ãƒ³ç„¡ã—ã§ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ãªã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã®è¨å®š
  $this->Auth->allow([
   'index',
   'search',
   'searchResult',
  ]);
}
メールè¨å®š
è¨å®šãƒ•ァイル
「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');
reCAPTCHA
reCAPTCHAライブラリインストール
composer require google/recaptcha "~1.1"
ã‚ーå–å¾—
「reCAPTCHAèªè¨¼ã€å‚ç…§
users.php
※~\config\users.php
$config = [
  'Users' => [
    ~
    'reCaptcha' => [
      // reCaptcha key goes here
      'key' => null,
      // reCaptcha secret
      'secret' => null,
      // use reCaptcha in registration
      'registration' => false,
      // use reCaptcha in login, valid values are false, true
      'login' => false,
    ↓
    'reCaptcha' => [
      // reCaptcha key goes here
      'key' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
      // reCaptcha secret
      'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
      // use reCaptcha in registration
      'registration' => true,
      // use reCaptcha in login, valid values are false, true
      'login' => true,
コントãƒãƒ¼ãƒ©
コンãƒãƒ¼ãƒãƒ³ãƒˆãƒãƒ¼ãƒ‰
※~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://~/profile
管ç†è€…:ユーザー一覧
http://~/users/users/
管ç†è€…:ユーザー登録
http://~/users/users/add
ユーザー:登録画é¢
http://~/users/users/register
ユーザー:パスワードリセット画é¢
http://~/users/users/request-reset-password