我创建了一个书签,可以在点击时从页面中提取所有图像,并通过JSONP将img的src
发送回另一个(远程)服务器。
问题:远程服务器必须检查会话身份验证cookie,以确保在将img src
添加到数据库之前登录发送JSONP请求的用户。我可以通过JSONP检查会话cookie,现在如果用户没有登录,我想让用户在此时登录,我该如何呈现登录屏幕?
此外,通过JSONP检查会话cookie是否存在安全风险?
书签的jQuery
我使用.getJSON
执行JSONP的方式可能不对。
$('.thing').on('click', function() {
var jsonp_url = 'http://mydomain.com/bookmark.js?callback=?';
var data = {
type: 'addToLibrary',
thingImgSrc: 'http://google.com/someimage.jpg';
};
$.getJSON(jsonp_url, data, function(resp) {
// console.log('done');
});
});
登录后的服务器响应
addToLibrary(["1"])
服务器响应,如果未登录
addToLibrary(["0"])
回调功能
addToLibrary = function(data) {
if(data == '0') {
// show login screen
} else {
// show OK screen
}
}
用户登录的想法
["0"]
表示错误后,弹出一个显示登录表单的窗口,登录将正常完成,因为弹出窗口包含来自远程服务器的页面。["0"]
时,在包含登录表单的当前页面上弹出一个AJAX样式的模式框,登录将通过JSONP完成。答案 0 :(得分:1)
为什么不发回一个对象?
addToLibrary( { "result" : ["registereduser@gmail.com"] } );
addToLibrary( { "error" : true, message : "must log in" } );
在您的函数中,检查错误或结果并以此方式处理。不知道Zero是什么。
function addToLibrary(resp) {
if (resp.error) {
showLoginPrompt();
} else {
addItems(resp.result);
}
}