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

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

WBOY
Release: 2016-06-06 20:31:20
Original
1156 people have browsed it

期望写成下面这种形式

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

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

现实需求是:

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

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

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

---- 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>
Copy after login
Copy after login

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

现实需求是:

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

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

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template