Backbone.js and user authentication

后端 未结 1 1677
无人共我
无人共我 2020-12-12 14:09

I have been wondering for quite a while how I would go about authenticating users using Backbone because I have been reading a few articles about it and a lot of them are ta

相关标签:
1条回答
  • 2020-12-12 14:33

    Short answer: wire up $.ajax to respond to 401 (Unauthorized) status codes.

    Long answer: We're consuming a RESTful api from a single page website. when the server detects an unauthorized request, it just returns a 401. The client will redirect to /login?#requested/resource.

    /login will prompt for authorization (redirect to google's oath server in our case) then add an authorization cookie and redirect to the originally requested #requested/resource

    we're also sending the auth cookie on every $.ajax request.

    Hopefully this is helpful.

    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();
            });
        });
    
    0 讨论(0)
提交回复
热议问题