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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:31:20
Original
1163 Leute haben es durchsucht

期望写成下面这种形式

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

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

现实需求是:

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

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

<code>'user' => [
    'class' => 'common\components\User'
]
</code>
Nach dem Login kopieren
Nach dem Login kopieren

---- 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>
Nach dem Login kopieren
Nach dem Login kopieren

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

现实需求是:

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

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

<code>'user' => [
    'class' => 'common\components\User'
]
</code>
Nach dem Login kopieren
Nach dem Login kopieren

---- 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只支持字串和数组

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage