0

我正在用allauth构建一个 Django 应用程序。

我有一个需要身份验证的页面,我在其中放置了一个 Java 小程序。这个小程序对返回 Json 对象的其他页面(同一个 django 项目的)执行 GET 请求。

小程序使用JSObject从父网页获取CSRF令牌。

问题是我想为所有页面设置身份验证控制,但我无法从小程序的父网页获取sessionid cookie,因此它无法通过 GET(也不能通过 POST)获取(或保存)数据。

也许这是一个简单的方法来获得这个,但我是一个新手,我还没有找到任何东西。

如果您需要什么,请随意询问。

谢谢你。

编辑:

有没有在楼下写过,发现sessionid cookie 被标记为HTTPOnly,所以现在的问题是,让小程序进行 POST 和 GET 请求最安全的方法是什么。例如,可以在页面中创建一个 JS 方法,获取数据并将其传递给小程序吗?也许以同样的方式我可以做 POST?

编辑:

我使用页面中的 jquery 调用成功获取了数据。现在的问题是代码抛出了InvocationTargetException。我找到了问题的位置,但我不知道如何解决它。

这是Jquery代码:

  function getFloor() {

        $.get(
              "{% url ... %}",
              function(data) {
                    var output = JSON.stringify(data);
                    document.mapGenerator.setFloor(output)
              }
        );}

这里有小程序的两个功能。**部分是问题的根源。

  public void setFloor(String input) {
    Floor[] f = Floor.parse(input);
}

  public static Floor[] parse(String input) {

    **Gson gson = new Gson();**

    Floor[] floors = gson.fromJson(input, Floor[].class);

    return floors;
}

这里是出现在我的服务器上的日志,您可以在其中看到小程序尝试从服务器(而不是小程序)加载 Gson 的库

  "GET /buildings/generate/com/google/gson/Gson.class HTTP/1.1" 404 4126

有人可以帮助我吗?

4

1 回答 1

0

你可以在你的小程序中做这样的事情:

String cookies = JSObject.getWindow(this).eval("document.cookie").toString();

这将为您提供以分号分隔的页面的所有 cookie。

于 2012-11-23T03:25:32.413 回答