首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用http-foundation、JWT和.ENV设置和读取Cookie

如何使用http-foundation、JWT和.ENV设置和读取Cookie
EN

Stack Overflow用户
提问于 2017-06-10 06:33:54
回答 0查看 617关注 0票数 1

我有一个登录处理文件,尝试在其中设置cookie:

代码语言:javascript
复制
$expTime = time() + 3600;
$key = getenv("SECRET_KEY");
$token = array(
    "iss" => request()->getBaseUrl(),
    "sub" => [$user['id']],
    "exp" => $expTime,        
    "iat" => time(),
    "nbf" => time(),
    "is_admin" => $user['role_id'] == 1
);
$jwt = JWT::encode($token, $key);

$accessToken = new Cookie('access_token', $jwt, $expTime, '/', getenv("COOKIE_DOMAIN"));

redirect('/', ['cookies' => [$accessToken]]);

我使用Firebase/JWT来包含一个JWT作为cookie值。从我的.ENV文件中拉入SECRET_KEY和COOKIE_DOMAIN。

然后我调用我的redirect()

代码语言:javascript
复制
function redirect($path, $extra = []) {
$response = new Response(
    null,
    Response::HTTP_FOUND,
    array('location' => $path)
    );
    if (key_exists('cookies', $extra)) {
        foreach ($extra['cookies'] as $cookie) {
            $response->headers->setCookie($cookie);
        }
    }
    $response->send();  
}

然后测试是否在我的索引文件中设置了cookie:

代码语言:javascript
复制
if (request()->cookies->has('access_token')) {
    echo "Logged in";
} else echo "No cookie :(";

我的问题是我的测试返回"No cookie :(“。

任何帮助都将不胜感激。

如果你愿意,你可以在GutHub上分支它:jpradcliffe/user-authentication

EN

回答

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

https://stackoverflow.com/questions/44467526

复制
相关文章

相似问题

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