Ответ 1
Короткий ответ: подключите $.ajax для ответа на 401 (неавторизованные) коды состояния.
Длинный ответ: мы потребляем RESTful api с одного веб-сайта. когда сервер обнаруживает несанкционированный запрос, он просто возвращает 401. Клиент будет перенаправлен на /login? # request/resource.
/login
будет запрашивать авторизацию (перенаправлять на сервер клятв Google в нашем случае), затем добавить файл cookie авторизации и перенаправить на первоначально запрошенный #requested/resource
мы также отправляем файл cookie auth на каждый запрос $.ajax.
Надеюсь, это поможет.
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();
});
});