首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python在SimpleCookie中保存jwt标记

问python在SimpleCookie中保存jwt标记
EN

Stack Overflow用户
提问于 2020-09-07 17:00:13
回答 1查看 45关注 0票数 0

我的目标是创建一个cookie来存储jwt`s的id标记,并将其传递回客户端。此逻辑在aws lambda中运行:

代码语言:javascript
复制
def lambda_handler(event, context):
.....
.....
cookie_name="my_cookie"
cookie = gen_cookie(domain, expiration, cookie_name,jwt):
return {"statusCode": 302,
        "headers": {
            "Location": "different-url/logged-in",
            "Set-Cookie": cookie}
        }

def gen_cookie(domain, expiration, cookie_name,jwt):
    cookie = SimpleCookie()
    cookie[cookie_name] = "test"
    cookie[cookie_name]['httponly'] = "yes"
    cookie[cookie_name]['domain'] = domain
    cookie[cookie_name]['expires'] = expiration
    cookie[cookie_name]['path'] = "/"
    cookie[cookie_name]['id_token'] = jwt['id_token']
    print(cookie)
    return cookie

我得到一个异常,id_token不是一个有效的属性。

代码语言:javascript
复制
[ERROR] CookieError: Invalid attribute 'id_token'
Traceback (most recent call last):
  File "/var/task/lambda_function.py", line 41, in lambda_handler
    cookie[cookie_name]['id_token'] = response_content_dict['id_token']
  File "/var/lang/lib/python3.7/http/cookies.py", line 311, in __setitem__
    raise CookieError("Invalid attribute %r" % (K,))

我检查过了,simpleCookie中唯一有效的值是:

代码语言:javascript
复制
  _reserved = {
        "expires"  : "expires",
        "path"     : "Path",
        "comment"  : "Comment",
        "domain"   : "Domain",
        "max-age"  : "Max-Age",
        "secure"   : "Secure",
        "httponly" : "HttpOnly",
        "version"  : "Version",
    }

所以我的问题是,如何创建包含jwt的cookie并将其返回给客户端?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-07 18:58:48

我以如下方式将jwt保存在cookie中:

代码语言:javascript
复制
def gen_cookie(domain, expiration, cookie_name,jwt):
    cookie = SimpleCookie()
    cookie[cookie_name] = jwt['id_token']
    cookie[cookie_name]['httponly'] = "yes"
    cookie[cookie_name]['domain'] = domain
    cookie[cookie_name]['expires'] = expiration
    cookie[cookie_name]['path'] = "/"
    print(cookie)
    return cookie

注意,cookie的值是jwt`s的标记。

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

https://stackoverflow.com/questions/63774453

复制
相关文章

相似问题

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