0

Je suis en train de créer une application et une API pour que cette application communique avec.
Mon API rassemble des informations de l'API Graph de Facebook, les traite/les enrichit de données dans ma base de données et les renvoie dans mon application.
Les utilisateurs se connectent à mon application en utilisant le SDK Facebook. Ainsi, à chaque requête, ils ajoutent leur jeton utilisateur Facebook (en utilisant https pour la sécurité) afin que mon API/Serveur puisse interroger l'API Facebook et en récupère l'identifiant afin que je puisse trouver des données pour cet utilisateur dans ma base de données.
Cela fonctionne très bien jusqu'à présent.Conseil nécessaire: Comment vérifier si une demande d'API provient de mon application (en utilisant des jetons Facebook)?

Mais obtenir l'ID nécessite que je demande à Facebook pour chaque demande à mon API. Peut-être devrais-je stocker les jetons d'accès Facebook sur la première requête à mon API et pour d'autres demandes, juste vérifier s'ils correspondent? Mais est-il une bonne idée de stocker (crypté) des jetons d'accès Facebook? Je crois que j'ai lu quelque chose à propos de ce que c'était une mauvaise idée.

J'ai aussi pensé à ce qui se passerait si quelqu'un d'autre utilisait une application Facebook et connaissait donc d'autres jetons d'utilisateur.
Si cette personne envoie ce jeton à mon API, je pense qu'il s'agit d'un utilisateur légitime, n'est-ce pas? Existe-t-il un moyen de dire à l'API Facebook de n'accepter que les jetons générés à partir de mon application Facebook?
J'ai découvert l'interrogation de "/ app? Access_token = {token_to_check}" pour obtenir des informations (nom de l'application, identifiant de l'application, ...) sur un jeton. Mais interroger cela avec chaque demande d'API Facebook ralentirait la demande globale, je suppose.


TL; DR:
Est-ce une bonne idée de stocker (crypté) jetons d'accès Facebook?
Puis-je demander à l'API Facebook d'accepter uniquement les jetons d'accès générés par mon application (Facebook)?
Ou connaissez-vous un autre moyen de refuser des jetons Facebook étrangers?

+0

Commencez par https://developers.facebook.com/docs/facebook-login/security – CBroe

Répondre

0

J'ai trouvé la réponse moi-même:
On dirait que Facebook n'accepte que les jetons d'accès générés par votre application.
Il suffit donc de vérifier si le résultat d'une requête API FB est ce type d'erreur pour voir si un jeton d'accès est valide.