我正在用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
有人可以帮助我吗?