Impossible de détecter si l'utilisateur est connecté lors de l'utilisation de Paginator (backbone.js)

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

Question

J'utilise le Paginateur Backbone.js brancher.Il réalise bien la pagination à défilement infini en définissant sa propre collection pour les modèles impliqués dans la pagination.Si l'utilisateur est connecté, le backend PHP renverra l'objet Backbone avec un attribut supplémentaire is_liked pour que cet élément ait un style CSS différent.

Problème:Lorsque le plugin Paginator (avec sa propre Collection Backbone.Paginator.requestPager) fait un GET fetch requête sur le backend, le backend n'est pas en mesure de déterminer si l'utilisateur est connecté !Cependant, lorsque j'utilise l'habituel Backbone.Collection, le backend est capable de déterminer si l'utilisateur est connecté !Cela fonctionne avec un $.post() aussi.Cela me fait penser que le problème réside dans le plugin Backbone.Paginator.requestPager

Je vérifie les résultats en utilisant la section Réseau des outils de développement de Chrome.Si le contrôle d'authentification fonctionne, api/test peut être vu pour renvoyer certaines données sur l'utilisateur.Si le statut de connexion ne peut pas être déterminé, il renvoie null

MISE À JOUR: Le GET demande envoyée par Backbone.Paginator.requestPager la collection n'inclut pas les Cookie informations dans les en-têtes qui se trouvent dans le GET demande envoyée par Backbone.Collection.Est-ce que ceci pourrait être le problème?Comment puis-je forcer Backbone.Paginator.requestPager ne pas supprimer les données des cookies des en-têtes ?

Que se passe-t-il ici?Et comment puis-je résoudre ce problème (sans réécrire mon propre code de pagination) ?

Test d'authentification à l'aide du backend PHP (Laravel Framework)

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

Collection Backbone typique [Œuvres]

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

Collection du paginateur [ne fonctionne pas]

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;
    }

});
Était-ce utile?

La solution

Il s'agit d'un problème interdomaine :

Une requête est adressée à cette URL :http://www.mysite.com/api/test?page=1

Et l'autre à ceci :http://monsite.com/api/test

Pour les navigateurs, www.monsite.com est totalement différent, donc si le cookie est généré sur www.monsite.com, les requêtes adressées à monsite.com ne le contiendront pas.Assurez-vous que les deux demandes vont au même domaine et vous n'aurez pas de problème de cookies.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top