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

Follow me!