簡単な答え: $.ajax を接続して、401 (未承認) ステータス コードに応答します。
長い回答: 単一ページの Web サイトから RESTful API を使用しています。サーバーが無許可のリクエストを検出すると、401 を返すだけです。クライアントは /login?#requested/resource にリダイレクトします。
/login
認証を求めるプロンプトが表示され (この場合は Google の宣誓サーバーにリダイレクトされます)、認証 Cookie が追加され、最初に要求された場所にリダイレクトされます。#requested/resource
また、$.ajax リクエストごとに認証 Cookie を送信しています。
うまくいけば、これは役に立ちます。
define(
[
'jquery',
'jquery.cookie'
],
function ($) {
var redirectToLogin = function () {
var locationhref = "/login";
if (location.hash && location.hash.length > 0) {
locationhref += "?hash=" + location.hash.substring(1);
}
location.href = locationhref;
};
var $doc = $(document);
$doc.ajaxSend(function (event, xhr) {
var authToken = $.cookie('access_token');
if (authToken) {
xhr.setRequestHeader("Authorization", "Bearer " + authToken);
}
});
$doc.ajaxError(function (event, xhr) {
if (xhr.status == 401)
redirectToLogin();
});
});