我的Flask应用的用户在https://example.com/login登录,但他们可以设置自定义域http://customdomain.com
我希望能够在用户访问其自定义域时访问Flask会话变量,以便在用户登录时可以显示删除和修改用户界面控件。
当然,浏览器会阻止从域以外的域访问Cookie。
我可以解决这个问题的任何想法或方法吗?
答案 0 :(得分:0)
这就是我所做的;似乎运作良好。我使用设置为withCredentials
的{{1}}对服务器进行AJAX JSONP调用。服务器获取会话cookie并告诉客户端用户是否已登录。根据响应,我可以向用户显示其他用户界面元素。
true
服务器代码:
<script>
$(".logged_in").hide();
request = $.ajax({
url: "http://example.com/ping/",
type: "GET",
dataType: "jsonp",
xhrFields: {
withCredentials: true
}
});
request.done(function (response, textStatus, jqXHR){
// log a message to the console
if (response['logged_in'])
{
$(".logged_in").show();
}
});
request.fail(function (jqXHR, textStatus, errorThrown){
// log the error to the console
console.error("The following error occurred: " + textStatus, errorThrown);
console.log("jqXHR: " + JSON.stringify(jqXHR))
});
</script>