2013-06-02 7 views
3

Utilisation de OAuth 2 Je dois limiter l'accès utilisateur aux ressources autorisées uniquement, où la connexion à l'API est établie via un proxy REST ext.js. Le proxy ext.js prend en charge la récupération des données et le maintien des relations du modèle. Je n'ai pas trouvé un moyen élégant de faire différents appels du proxy au backend en fonction de l'utilisateur connecté.Authentification Sencha touch 2 oauth2

Je me demande si le proxy doit être différent pour chaque utilisateur connecté à mon application car chaque utilisateur a son propre jeton d'accès.

Une autre option consisterait à informer le proxy sur l'utilisateur connecté pendant le processus d'initialisation du proxy et à enregistrer cette information de manière persistante.

Est-ce que quelqu'un a déjà résolu une situation similaire?

Répondre

1

L'article explique en détail comment utiliser OAuth2 avec Sencha Touch.

Il existe plusieurs façons d'utiliser OAuth. L'un utilise les redirections après l'authentification initiale (pour cela, vous pouvez utiliser un iFrame dans une vue de connexion Sencha). L'autre utilise votre serveur dorsal en tant qu'intermédiaire au serveur OAuth qui peut éviter la solution iFrame mais nécessite plus de logique sur votre serveur.

Vous pouvez ensuite utiliser un cookie de session qui sera renvoyé avec toutes les demandes HTTP, y compris vos appels REST. La plupart des utilitaires prennent en charge les cookies de session. Il vous suffit donc de rechercher l'ID utilisateur que vous avez stocké dans l'objet session dans le cadre de votre code API REST.

Une autre option consiste à définir un en-tête HTTP personnalisé dans chaque appel REST nécessitant une authentification. Pour éviter le code en double, créez une classe dérivée à partir de la classe proxy Sencha pour définir l'en-tête contenant le jeton d'accès. Vous pouvez stocker le jeton d'accès dans un magasin ou sur l'objet Application ou en tant que valeur statique sur le proxy. Je l'ai fait pour les appels proxy REST et les appels proxy Sencha Direct.

AJAX propriété d'en-tête Proxy: