dektrium/yii2-user
的代码在github
上的托管地址:https://github.com/dektrium/yii2-user,
使用composer
方式引入类php
composer require "dektrium/yii2-user:0.9.*@dev"
main.php
的组件请确保你没有在你的配置文件中使用
user
组件配置前端
配置以下:git
'modules' => [ 'user' => [ 'class' => 'dektrium\user\Module', ], ],
$ php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
跳转地址使用了url美化,请确保配置了
urlManager
组件github
@app\views\layouts\main.php
文件中将后端
if (Yii::$app->user->isGuest) { $menuItems[] = ['label' => 'Signup', 'url' => ['/site/signup']]; $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']]; } else { $menuItems[] = '<li>' . Html::beginForm(['/site/logout'], 'post') . Html::submitButton( 'Logout (' . Yii::$app->user->identity->username . ')', ['class' => 'btn btn-link'] ) . Html::endForm() . '</li>'; }
替换为bash
if (Yii::$app->user->isGuest) { $menuItems[] = ['label' => 'Sign in', 'url' => ['/user/security/login']]; $menuItems[] = ['label' => 'Register', 'url' => ['/user/registration/register'], 'visible' => Yii::$app->user->isGuest]; } else { $menuItems[] = ['label' => 'Sign out (' . Yii::$app->user->identity->username . ')', 'url' => ['/user/security/logout'], 'linkOptions' => ['data-method' => 'post']]; }
当你注册新用户后,该扩展默认会发送邮件,必须邮箱验证后才能正式登录,若是须要修改配置参数请查阅官方文档yii2
session
不能用来登录后端在@frontend\config\main.php
中配置项以下cookie
'components' => [ 'user' => [ 'identityCookie' => [ 'name' => '_frontendIdentity', 'path' => '/', 'httpOnly' => true, ], ], 'session' => [ 'name' => 'FRONTENDSESSID', 'cookieParams' => [ 'httpOnly' => true, 'path' => '/', ], ], ],
在@backend\config\main.php
中配置项以下session
'components' => [ 'user' => [ 'identityCookie' => [ 'name' => '_backendIdentity', 'path' => '/admin', 'httpOnly' => true, ], ], 'session' => [ 'name' => 'BACKENDSESSID', 'cookieParams' => [ 'httpOnly' => true, 'path' => '/admin', ], ], ],
1.用户登录后,点击注销登录,错误提示为After logging in I'm redirected back without any sign of being logged in
app
解决方案:在main.php
组件中修改user
'user' => [ 'class' => 'app\components\User', 'identityClass' => 'dektrium\user\models\User', ],