Steam OpenID登录后无法保存会话变量(Flask)

问题描述 投票:0回答:0

目前正在尝试从 OpenID url 保存登录的 steam id。我可以收到 Steam ID 并将其打印到屏幕上,但是一旦我尝试将其保存到会话变量中,浏览器关闭后它将不存在。

我尝试过使用 HTTPS,也尝试过将用户重定向到带有 steam id 的 url 并将其保存在其中,但没有任何结果。我尝试设置其他会话变量,它们在关闭浏览器后可以正常工作并保持存在状态。

from flask import redirect, request, session, url_for, g
from json import dumps, loads
from urllib.parse import urlencode

def SteamLogin():
    OpenID_Parameters = {
        'openid.ns': "http://specs.openid.net/auth/2.0",
        'openid.identity': "http://specs.openid.net/auth/2.0/identifier_select",
        'openid.claimed_id': "http://specs.openid.net/auth/2.0/identifier_select",
        'openid.mode': 'checkid_setup',
        'openid.return_to': 'http://127.0.0.1:5000/authorize',
        'openid.realm': 'http://127.0.0.1:5000'
    }

    OpenID_Parameters_URL = urlencode(OpenID_Parameters)
    OpenID_URL = ('https://steamcommunity.com/openid/login' + "?" + OpenID_Parameters_URL)
    OpenID = {"OpenIDUrl" : OpenID_URL}
    return dumps(OpenID)

def AuthorizeData():
    Received_Steam_Info_JSON = loads(dumps(request.args))
    userID = Received_Steam_Info_JSON['openid.claimed_id']
    session['user'] = userID
    return redirect("http://localhost:3000/")

在关闭浏览器之前,用户会话变量将打印 steam id。关闭浏览器并打印 session['user] 后,它将显示 None.

python flask openid steam-web-api
© www.soinside.com 2019 - 2024. All rights reserved.