Veuillez aider!

Question courte : J'essaye de me connecter à ParseUser avec un jeton de session comme ceci:

ParseUser.becomeInBackground(token);

Cela se passe toujours bien lors de la première connexion. Mais cela échoue toujours lorsque je réessaye. J'obtiens une erreur "jeton de session non valide". La session reste la même. Toute autre information sur le jeton est masquée.

Question détaillée Je construis une application pour les parents et les enfants. Il est suggéré que 2 utilisateurs démarrent l'application sur leurs (différents) appareils en utilisant un seul compte (un ParseUser pour différents appareils connectés à la fois). Tout d'abord, un parent se connecte sur ses appareils. Ensuite, il génère un code QR avec un jeton de session.

String token = ParseUser.getCurrentUser().getSessionToken();
Bitmap bitmap = encodeAsBitmap(token);
qrView.setImageBitmap(bitmap);

L'appareil de l'enfant lit ce QR et se connecte. Cette procédure fonctionne bien la première fois. Mais si je déconnecte l'appareil de l'enfant et que j'essaye de me connecter par QR pour la deuxième fois, il échoue avec "jeton de session invalide". Cela échoue également lorsque j'essaie de me connecter à l'appareil du deuxième enfant. Lorsque je supprime la session manuellement dans parse-dashboard, je peux à nouveau me connecter à l'appareil de l'enfant avec QR, mais seulement pour une fois.

J'ai fait de mon mieux pour trouver une solution ici et sur l'autre Internet, mais je n'ai pas réussi.

Chers développeurs de niveau expert, aidez-moi à résoudre ce problème.

1
Artem Sborets 22 déc. 2015 à 23:08

2 réponses

Meilleure réponse

Je pense que votre problème est lié au fait que Parse.com utilise désormais des jetons de session révocables, voir http://blog.parse.com/announcements/announcing-new-enhanced-sessions/

D'autres rencontrent des problèmes similaires ici: https://groups.google.com/ forum / #! topic / parse-developer / Knxl_MBVlLY

Cela signifie que le jeton n'est valide que pendant une session, c'est-à-dire lorsque l'utilisateur est connecté sur l'appareil. Une fois que l'utilisateur se déconnecte, la session est détruite avec le jeton.

Cela pourrait peut-être être considéré comme une `` fonctionnalité '' dans votre application, car les parents peuvent contrôler l'accès de leurs enfants à l'application. S'ils se déconnectent, leurs enfants aussi.

Si cela est trop éloigné du scénario d'utilisation prévu, vous pouvez envisager d'ajouter une connexion tierce telle que Auth0 ou OAuth

https://auth0.com/docs/scenarios/parse

https://parse.com/tutorials/adding-third-party-authentication-to-your-web-app

0
cYrixmorten 22 déc. 2015 à 21:12

Il semble que je l'ai compris.

Réponse courte: Dans le tableau de bord Parse.com, accédez à l'onglet Paramètres. Dans l'onglet Général, accédez à la section "Sessions utilisateur". Désactivez le bouton " Exiger des sessions révocables ".

Détails: Depuis mars 2015, Parse.com a commencé à utiliser des sessions révocables. Cela signifie que lorsque l'utilisateur se déconnecte ou que la session expire, cela devient inutile. Vous devez donc vous déconnecter et vous reconnecter pour utiliser votre application comme d'habitude. C'est un problème de sécurité important. Mais dans un cas comme le mien, envisagez de l'éteindre.

1
Artem Sborets 23 déc. 2015 à 00:25