从自定义域访问Flask会话cookie

时间:2013-10-30 19:35:36

标签: python flask

我的Flask应用的用户在https://example.com/login登录,但他们可以设置自定义域http://customdomain.com

我希望能够在用户访问其自定义域时访问Flask会话变量,以便在用户登录时可以显示删除和修改用户界面控件。

当然,浏览器会阻止从域以外的域访问Cookie。

我可以解决这个问题的任何想法或方法吗?

1 个答案:

答案 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>