クリックするとページからすべての画像を抽出し、src
JSONPを介してimgを別の(リモート)サーバーに送り返すブックマークを作成しました。
問題:リモートサーバーは、セッション認証Cookieをチェックしsrc
て、データベースにimgを追加する前に、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を介して行われます。