环顾在线后,我仍然不明白会话是如何在Slim2中工作的。Slim SessionCookie的例子非常罕见。几乎没有。我只能从医生那里得到什么。
http://docs.slimframework.com/sessions/cookies/
“第二个参数是可选的;这里显示了它,这样您就可以看到默认的中间件设置。会话cookie中间件将与$_SESSION超级全局无缝地工作,这样您就可以轻松地迁移到这个会话存储中间件,而应用程序代码没有任何更改。
如果使用会话cookie中间件,则不需要启动本机PHP会话。$_SESSION超级全局仍然可用,它将通过中间件层被持久化到HTTP中,而不是使用PHP本机会话管理。“
例如,
use Slim\Slim;
use Slim\Middleware\SessionCookie;
$app = new Slim();
$app->add(new SessionCookie(
array(
'expires' => '20 minutes',
'path' => '/',
'domain' => null,
'secure' => false,
'httponly' => false,
'name' => 'slim_session',
'secret' => 'CHANGE_ME',
'cipher' => MCRYPT_RIJNDAEL_256,
'cipher_mode' => MCRYPT_MODE_CBC
)
));
$app->get('/admin', function () use ($app) {
// Check for session.
if (session: user exist) {
echo "Hello Admin";
} else {
$app->redirect('login');
}
});
$app->run();如何设置会话:用户到中间件并检索它?
这就是我在本地PHP中所做的,
bootstrap.php
// Check username and password, if they match with the ones in db,
// then get the hashed key in the user row.
// Last, store the key in the session.
$_SESSION["user"] = 'hashedkeyxxxx';admin.php,
// Check if the session exist when the user want to access the admin only pages.
if ($_SESSION["user"]) {
echo "Hello Admin";
} else {
// redirect
}那我怎么才能和Slim一起这么做呢?
发布于 2015-10-11 09:45:16
直接从文件里拿出来的。
“如果使用会话cookie中间件,则不需要启动本地PHP会话。$_SESSION超级全局仍然可用,它将通过中间件层而不是通过PHP本机会话管理持久保存到HTTP中。”
http://docs.slimframework.com/sessions/cookies/
因此,当您初始化中间件时,您可以以与传统$_SESSION相同的方式访问$_SESSION。编码愉快。
编辑:你不能直接做到这一点。但是,如果您使用像这个https://github.com/yusukezzz/slim-session-manager这样的自定义中间件。您将得到使用不同的API。
但是,正如从文档中复制的那样,您使用的不是PHP实现,而是以类似方式工作的苗条实现。
https://stackoverflow.com/questions/33062895
复制相似问题