Paginator(backbone.js)를 사용할 때 사용자가 로그인되어 있는지 감지할 수 없습니다.

StackOverflow https://stackoverflow.com//questions/11687190

문제

나는 Backbone.js 페이지네이터 플러그인.페이지 매김과 관련된 모델에 대해 자체 컬렉션을 정의하여 무한 스크롤 페이지 매김을 잘 수행합니다.사용자가 로그인한 경우 PHP 백엔드는 추가 속성과 함께 Backbone 객체를 반환합니다. is_liked 해당 항목에 다른 CSS 스타일이 적용되도록 합니다.

문제:Paginator 플러그인(자체 컬렉션 포함) Backbone.Paginator.requestPager) GET을 수행합니다. fetch 백엔드에서 요청하면 백엔드는 사용자가 로그인했는지 확인할 수 없습니다!그런데 평소에 사용하다보면 Backbone.Collection, 백엔드는 사용자가 로그인했는지 여부를 확인할 수 있습니다!그것은 $.post() 도.이로 인해 문제가 플러그인에 있다고 생각됩니다. Backbone.Paginator.requestPager

Chrome 개발자 도구의 네트워크 섹션을 사용하여 결과를 확인하고 있습니다.인증 확인이 성공하면, api/test 사용자에 대한 일부 데이터를 반환하는 것으로 볼 수 있습니다.로그인 상태를 확인할 수 없으면 null을 반환합니다.

업데이트: 그만큼 GET 요청 보낸 사람 Backbone.Paginator.requestPager 컬렉션에는 다음이 포함되지 않습니다. Cookie 헤더에 있는 정보 GET 요청 보낸 사람 Backbone.Collection.이것이 문제가 될 수 있습니까?어떻게 강제할 수 있나요? Backbone.Paginator.requestPager 헤더에서 쿠키 데이터를 제거하지 않으려면?

여기서 무슨 일이 일어나고 있나요?그리고 이 문제를 어떻게 해결할 수 있나요(나만의 페이지 매김 코드를 다시 작성하지 않고)?

PHP 백엔드를 사용한 인증 테스트(Laravel Framework)

Route::any('api/test', function() {
    // This will return some data of the user if logged in
    return json_encode(Auth::user());  
});

일반적인 백본 컬렉션 [작동]

SimilarUserCollection = Backbone.Collection.extend({
    model: User,
    url: 'api/test'
});

Paginator의 컬렉션 [작동하지 않음]

PhotoCollection = Backbone.Paginator.requestPager.extend({
    model: Photo,

    paginator_core: {
            type: 'GET',
            dataType: 'json',
            url: 'api/test'
        },

    paginator_ui: {
        firstPage: 1,
        currentPage: 1,
        perPage: 7,
        totalPages: 10
    },

    server_api: {

        'page': function() { return this.currentPage; }
    },

    parse: function (response) {

        return response;
    }

});
도움이 되었습니까?

해결책

이는 도메인 간 문제입니다.

한 가지 요청은 다음 URL에 대한 것입니다:http://www.mysite.com/api/test?page=1

그리고 이것에 대한 다른 하나는:http://mysite.com/api/test

브라우저의 경우 www.mysite.com은 완전히 다르기 때문에 www.mysite.com에서 쿠키가 생성되면 mysite.com에 대한 요청에는 해당 쿠키가 포함되지 않습니다.두 요청이 모두 동일한 도메인으로 이동하는지 확인하세요. 그러면 쿠키 문제가 발생하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top