Session 带有用户信息的Kong API网关会话插件
我正试图将上游服务的授权/身份验证抽象到香港API网关。以前,我使用express+passport处理会话。每当用户使用其凭据登录时,将创建一个会话,并将其用户信息附加到req对象(Session 带有用户信息的Kong API网关会话插件,session,api-gateway,kong,Session,Api Gateway,Kong,我正试图将上游服务的授权/身份验证抽象到香港API网关。以前,我使用express+passport处理会话。每当用户使用其凭据登录时,将创建一个会话,并将其用户信息附加到req对象(req.user) 目前,我正在使用++比较映射到容器中的文件中的用户密码(使用bycryptlua库)。客户端将发送一个带有API密钥的初始登录(用户名和密码)请求来登录,无服务器函数将比较密码散列,如果所有这些都通过了,会话将被创建 但是,我的问题是,是否有办法将用户信息存储到会话数据库中,以便我的上游服务可以
req.user
)
目前,我正在使用++比较映射到容器中的文件中的用户密码(使用bycrypt
lua库)。客户端将发送一个带有API密钥的初始登录(用户名和密码)请求来登录,无服务器函数将比较密码散列,如果所有这些都通过了,会话将被创建
但是,我的问题是,是否有办法将用户信息存储到会话数据库中,以便我的上游服务可以请求该信息,以确保连接到登录用户的会话在任何给定时间都有效
任何想法,即使与香港无关,也将不胜感激 在Kong上创建新会话时,可以显式提供用于标识会话的唯一密钥(默认情况下由Kong自己创建)。 当密码检查通过并且您正在香港生成会话时,您可以创建自己的唯一密钥,并在创建会话时使用该密钥
Kong_admin = 'http://localhost:8001'
kong_session = {'key': 'any-unique-combination'}
#any unique combination which you would like to use for identifying the session
user = 'test-user@dummy.com'
#create a session for this dummy user using your key
response = requests.post('%s/consumers/%s/jwt' % (Kong_admin, user),data=kong_session)
#Once the session is created you can find it using
resp = requests.get('%s/consumers/%s/jwt/any-unique-combination' % (Kong_admin, user))
# you can use this key in your token payload so your upstream service can decrypt the
# payload and get this key and you can store this key in your database mapped with
# user during session creation.
# with this you ll be able to decrypt any session payload , get a key and then query
# it on database at any point of time