2010-03-07 6 views
8

Je voudrais faire OAuth pour Twitter à partir d'une application iPhone. Mais cela implique que mon API doit être secrète avec ma clé API cuite dans le binaire de l'application. Ceci est évidemment indésirable.Puis-je éviter de cuire mon code secret de l'API Twitter dans l'application binaire de mon iPhone?

Facebook prend en charge la notion de session proxy pour contourner le problème parallèle avec leur API. Puis-je faire quelque chose comme ça pour Twitter?

Répondre

15

Réponse courte: Non

OAuth a été créé et fonctionne très bien pour les applications web. C'est une cheville carrée dans un trou rond pour les applications natives. La spécification 1.0a était supposée la rendre plus viable pour les applications natives, mais elle n'aide pas beaucoup.

Comme vous l'avez souligné, l'un des principaux problèmes est que les clés du client doivent être stockées dans l'application. Pas de problème pour les applications web où l'accès à la source est limité, mais un gros problème pour les applications natives.

L'autre problème majeur est de ne pas fournir de sécurité supplémentaire sur les formulaires de connexion standard pour les applications natives, mais je ne vais pas entrer dans cela. Mais comme Twitter vous le demande si vous souhaitez accéder à des limites de débit plus élevées et que votre nom d'application est associé à Tweets, vous n'avez pas le choix. La seule façon d'éviter d'avoir la clé du consommateur dans le code de votre application est d'envoyer toutes les demandes par l'intermédiaire de votre propre serveur.

1

Certains mettent la clé dans un fichier de type paramètres que l'application lira. D'autres stockent la clé dans un fichier de base de données local à l'application. D'autres stockent la clé sur leur propre serveur et l'application native se connecte au serveur pour obtenir la clé et le secret.

+0

Comment cela vous aide-t-il? le problème ne concerne pas les autres applications qui y accèdent. le problème est quelqu'un qui obtient l'application et l'ingénierie inverse – user102008