为了账号安全,请及时绑定邮箱和手机立即绑定

yii2配置词典 / 用户认证配置(user)

标签:
PHP

对于任何一个使用yii2的人来说,登录都是躲不过的,今天就为你讲讲会员认证组件的配置方法及相关变量。

identityClass

这是必填项,我们必须为认证组件制定一个类并且要继承于IdentityInterface接口。

'user' => [
    'identityClass' => 'app\admin\models\User',
],
loginUrl

此配置作用于当游客访问了需要授权页面后进行的跳转行为,这也是我们在使用yii2的user中经常配置的。

'user' => [
    'identityClass' => 'app\models\User',
    'loginUrl' => ['/user/login']
],

提示:当我们在控制器内执行Yii::$app->user->loginRequired()方法即会调用loginUrl指定的路由。

returnUrl

该项与登录后跳转回登录前请求的页面配置有关。关于returnUrl的使用我们将单独拿出一篇文章来介绍。

enableAutoLogin

是否开启cookie自动登录,默认为false,不开启。

idParam

该项默认值为__id,作为session的key值,如果你的yii2程序存在多个模块并且需要登录时,请设置该项为不同值,避免冲突。

'user' => [
    'identityClass' => 'app\models\User',
    'idParam' => '__user'
],
authTimeout

登录过期时间,单位为秒,如果我们不在web.php的user内进行设置则按照服务器session过期时间来决定。

如果设置了authTimeout则在authTimeout和服务器session会话的过期时间中取最小值,有一点要注意,当你设置enableAutoLogin为真的时候,authTimeout变为无效。这也很好理解,enableAutoLogin为真后是按照cookie来管理登录状态的。

'user' => [
    'identityClass' => 'app\models\User',
    'authTimeout' => 3600
],
absoluteAuthTimeout

针对于authTimeout而言,当我们设置了authTimeout=10的时候,如果在第9秒刷新一次将会重新计算。

而当我们设置的是absoluteAuthTimeout=10,则即便你在9秒进行了页面刷新,等过了10秒依然会登录状态失效。

当然,enableAutoLogin时则absoluteAuthTimeout也不起作用。

'user' => [
    'identityClass' => 'app\models\User',
    'absoluteAuthTimeout' => 3600
],
authTimeoutParam

存储过期时间的session key值,默认为__expire。一般来说没必要去设置,多模块的时候需要注意。

'user' => [
    'identityClass' => 'app\models\User',
    'authTimeoutParam' =>'__user_expire'
],
absoluteAuthTimeoutParam

用途和 authTimeoutParam 一样。

autoRenewCookie

默认为真,主要决定于是否刷新cookie的过期时间,默认情况下每次我们使用 Yii::$app->user->identity 时都会刷新一次。

一般来说不需要设置,如果你想设置为假,可以如下。

'user' => [
    'identityClass' => 'app\models\User',
    'autoRenewCookie' =>false
],
enableSession

默认为真,代表使用session来维护登录状态,当然对于无状态服务,比如我们yii2的restful接口开发,需要将enableSession设置为false。

'user' => [
    'identityClass' => 'app\models\User',
    'enableSession' =>false
],

阿北的知识分享

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
PHP开发工程师
手记
粉丝
1万
获赞与收藏
234

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消