我在我的基于Django的网站上放置了LinkedIn登录按钮。当用户通过LinkedIn帐户登录时,LinkedIn将返回包含用户信息的JSON对象。我想将JSON对象传递回服务器端来处理和提取信息。
请告诉我这样做的方法,并且(如果可能的话)安全地进行。
谢谢!
答案 0 :(得分:1)
当您从LinkedIn获得结果时,请从浏览器中对您的Django视图进行ajax调用,如下所示:
if(YOU_GOT_THE_RESULT){
$.ajax({
url: your_url,
type: "POST",
dataType: "json",
data: JSON_DATA_YOU_GOT_FROM_LINKEDIN,
statusCode: {
200: function (your_Response_Data) {
// YOUR SERVER'S RESPONSE
// you can act on your server's
// response if there will be any
// eg. you can send back information to update UI.
},
// ... handle errors if required
404: function () {
// what to do on 404 etc.
}
},
complete: function (jqXHR, textStatus) {
// Things to do after everything is completed
}
});
}
在Django视图中,回复此ajax请求。如果您的视图仅响应ajax请求,则只需检查if request.is_ajax():
即可。这是post
请求,因此您的观点应对帖子做出回应。您正在寻找的数据位于request.POST
。
答案 1 :(得分:0)
如果你在python中有一个JSON(实际上是一个JSON格式的字符串),你可以使用json
库将它恢复为python对象:dict
或list
>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
['foo', {'bar': ['baz', None, 1.0, 2]}]