2010-03-07 5 views
8

Ich möchte OAuth für Twitter von einer iPhone App aus tun. Aber das bedeutet, dass ich mein API-Geheimnis neben meinem API-Schlüssel haben muss, der in die Anwendungsbinärdatei eingebacken ist. Dies ist offensichtlich unerwünscht.Kann ich es vermeiden, mein Twitter API Consumer Secret in meine iPhone App Binary zu brennen?

Facebook unterstützt die Idee einer session proxy, um das parallele Problem mit ihrer API zu umgehen.

Kann ich etwas tun, wie dies bei Twitter?

Antwort

15

Kurze Antwort: Nein.

OAuth wurde erstellt und funktioniert wirklich gut für Web-Anwendungen. Es ist ein quadratischer Stift in einem runden Loch für native Anwendungen. Spezifikation 1.0a sollte es für native Anwendungen lebensfähiger machen, aber es hilft wenig.

Wie Sie darauf hingewiesen haben, ist eines der Hauptprobleme, dass die Consumer Keys in der Anwendung gespeichert werden müssen. Kein Problem für Webanwendungen, bei denen der Zugriff auf die Quelle begrenzt ist, aber ein großes Problem für native Anwendungen.

Das andere große Problem hat damit zu tun, dass es keine zusätzliche Sicherheit gegenüber Standard-Anmeldeformularen für native Anwendungen bietet, aber ich werde nicht darauf eingehen.

Aber da zwingt Twitter Sie auf, wenn Sie Zugriff auf höhere Ratenbegrenzungen und Ihren Anwendungsnamen mit Tweets verbunden haben möchten, haben Sie keine andere Wahl.

Die einzige Möglichkeit, den Consumer-Schlüssel in Ihrem Anwendungscode zu vermeiden, besteht darin, alle Anforderungen über Ihren eigenen Server zu übertragen.

1

Einige steckte den Schlüssel in einen Einstellungen-Typ-Datei, die die Anwendung lesen. Andere speichern den Schlüssel in einer Datenbankdatei lokal für die App. Andere speichern den Schlüssel auf ihrem eigenen Server und die native App stellt eine Verbindung zum Server her, um den Schlüssel und das Geheimnis zu erhalten.

+0

Wie hilft das? Das Problem besteht nicht darin, dass andere Apps darauf zugreifen. Das Problem ist, dass jemand die App bekommt und sie rückentwickelt – user102008