1

今天我有一个关于 Klein 的问题,我问是因为互联网上没有太多关于这个库的文档。如果用户在“/login”或“/register”以外的任何页面上并且他们没有登录我,我想将用户重定向回/login,下面我尝试过:

$this->klein->respond('GET', '!@^/login|register', function ($request, $response, $service, $app) {
            if (!Latrina::getLibrary('latrina.user.user')->loggedIn()) {
                $response->redirect('/login')->send();
            }
        });

它可以工作,但是如果他们在 /register 上,它会重定向到 /login,这很烦人,因为它会禁止他们注册..

4

1 回答 1

1

我还没有亲自验证此回调的 $request 参数是一个字符串——它可能是一个对象或数组,您需要将 URL 作为属性进行检查。但这个一般逻辑是你正在寻找的:

$this->klein->respond('GET', '!@^/login|register', function ($request, $response, $service, $app) {
        if (!Latrina::getLibrary('latrina.user.user')->loggedIn()) {
            if (strpos($request, 'login') !== false) {
                $response->redirect('/login')->send();
            } else {
                $response->redirect('/register')->send();
            }
        }
    });
于 2016-12-06T01:39:49.087 回答