目前正在尝试从 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.