Heim >Backend-Entwicklung >PHP-Tutorial >Yii 2 中可以配置 component.user.loginUrl 匿名函数以实现动态赋值吗?

Yii 2 中可以配置 component.user.loginUrl 匿名函数以实现动态赋值吗?

WBOY
WBOYOriginal
2016-06-06 20:31:201159Durchsuche

期望写成下面这种形式

<code>'user' => [
    'loginUrl' => function () {
        return 'http://www.example.com/login'
            . '?return_url=' . Yii::$app->getRequest()->getAbsoluteUrl();
    },
]
</code>

-------------update-------------

现实需求是:

<code>有 一个 user.example.com 来提供 用户登录, 及基本信息管理; 
另有 a.example.com, a 项目需要登录时到 user 域名下登录,  登录后, 然后根据显式提供的return_url 跳转;</code>

目前是通过重写 a 项目中的 \yii\web\User::loginRequired() 方法来实现的

<code>'user' => [
    'class' => 'common\components\User'
]
</code>

---- update --

在 Yii 2 的 wiki ideas for 2.1 提到

See if it's possible to use SuperClosure to simplify serialization code / solve quirks.

或许可以解决这个问题。

回复内容:

期望写成下面这种形式

<code>'user' => [
    'loginUrl' => function () {
        return 'http://www.example.com/login'
            . '?return_url=' . Yii::$app->getRequest()->getAbsoluteUrl();
    },
]
</code>

-------------update-------------

现实需求是:

<code>有 一个 user.example.com 来提供 用户登录, 及基本信息管理; 
另有 a.example.com, a 项目需要登录时到 user 域名下登录,  登录后, 然后根据显式提供的return_url 跳转;</code>

目前是通过重写 a 项目中的 \yii\web\User::loginRequired() 方法来实现的

<code>'user' => [
    'class' => 'common\components\User'
]
</code>

---- update --

在 Yii 2 的 wiki ideas for 2.1 提到

See if it's possible to use SuperClosure to simplify serialization code / solve quirks.

或许可以解决这个问题。

看你的代码的需求是用户超时重新登录后返回当前页面,这个yii是实现的了,在踢出用户跳转到登录页面前已经把当前页面url地址存在session里了,登录成功后再controller中直接$this->goBack()就好了

目前loginUrl只支持字串和数组

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn