最近使用yii2做了一个系统,涉及到了用户登录等等,之前是自己写的一套,后来要添加邮箱验证功能。有点懒,然后看到了yii2-user这个扩展。简单说下,毕竟自己研究也不深。
http://yii2-user.dmeroff.ru/这个是yii2-user的官网。我使用的是基础模板,因此如果有使用高级模板的可以上官网看看。
首先,通过composer安装yii2-user
composer require "dektrium/yii2-user:0.9.*@dev"
安装完后可以在vendordektrium中查看到yii2-user
之后修改配置文件web.php 添加
'modules' => [ 'user' => [ 'class' => 'dektriumuserModule', 'confirmWithin' => 21600, 'cost' => 12, 'admins' => ['admin'] ], ],
同时删除本来的user配置
此外要注意自己写的控制器,model,数据库这些都不能有user
最后执行$ php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
这样就可以了。
由于要使用邮件功能,因此我们还要配置好swiftmailer
还是在配置文件web.php 修改本来的mailer配置为
'mailer' => [ 'class' => 'yiiswiftmailerMailer', 'viewPath' => '@app/mailer', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.163.com', 'username' => '',//自己的用户名 'password' => '',//自己的密码,有的邮箱是使用授权码 'port' => '25', 'encryption' => 'tls', ],
具体的host port不同的邮箱不同,可以登录对应邮箱查询。
修改后不要着急,这样是不可能发送成功的,原因很简单。使用swiftmailer发送邮件,要保证发件人和你填的username一样
打开vendordektriumyii2-user 找到Mailer.php
修改sender和username一样就可以
其余对应的都可以修改,大家自己研究下就好了
这样就可以发送邮件了
接下来就是使用yii2-user了
下面是对应功能的url,其余使用和yii2自带的user差不多的
- /user/registration/register Displays registration form
- /user/registration/resend Displays resend form
- /user/registration/confirm Confirms a user (requires id and token query params)
- /user/security/login Displays login form
- /user/security/logout Logs the user out (available only via POST method)
- /user/recovery/request Displays recovery request form
- /user/recovery/reset Displays password reset form (requires id and token query params)
- /user/settings/profile Displays profile settings form
- /user/settings/account Displays account settings form (email, username, password)
- /user/settings/networks Displays social network accounts settings page
- /user/profile/show Displays user's profile (requires id query param)
- /user/admin/index Displays user management interface
例如
<div class="login-strip"> <?php if(Yii::$app->user->isGuest) { ?> <?= Html::a("<i class='icon-plus'></i> 注 册",['/user/registration/register']); ?> | <?= Html::a("<i class='icon-signin'></i> 登 录",['/user/security/login']); ?> <?php } else { ?> <?= Html::a("<i class='icon-signout'></i> 退出",['/user/security/logout']); ?> <?php } ?> </div>
其余的对应使用下就好了。
这个只是个很粗略的介绍,具体我也只使用了这些很基本的功能,具体还有例如rabc什么的可以查查官网。
总的来说yii2-user还是个好用强大的东西的。