首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slim 2:如何在中间件中使用会话cookie?

Slim 2:如何在中间件中使用会话cookie?
EN

Stack Overflow用户
提问于 2015-10-11 08:17:40
回答 1查看 4.6K关注 0票数 2

环顾在线后,我仍然不明白会话是如何在Slim2中工作的。Slim SessionCookie的例子非常罕见。几乎没有。我只能从医生那里得到什么。

http://docs.slimframework.com/sessions/cookies/

“第二个参数是可选的;这里显示了它,这样您就可以看到默认的中间件设置。会话cookie中间件将与$_SESSION超级全局无缝地工作,这样您就可以轻松地迁移到这个会话存储中间件,而应用程序代码没有任何更改。

如果使用会话cookie中间件,则不需要启动本机PHP会话。$_SESSION超级全局仍然可用,它将通过中间件层被持久化到HTTP中,而不是使用PHP本机会话管理。“

例如,

代码语言:javascript
复制
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

代码语言:javascript
复制
// 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,

代码语言:javascript
复制
// Check if the session exist when the user want to access the admin only pages.
if ($_SESSION["user"]) { 
    echo "Hello Admin";
} else {
    // redirect
}

那我怎么才能和Slim一起这么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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实现,而是以类似方式工作的苗条实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33062895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档