Erstellen von Signature und Nonce für OAuth (Ruby)
Ich bin auf der Suche, um Zugriff auf SmugMug-API aus meiner Anwendung zu greifen Nutzer Alben und Bilder, die der Benutzer authentifiziert wurde, über ruby-OmniAuth ist).
Laut SmugMug ist OAuth API, OAuth benötigt sechs Parameter.
Bekomme ich das token mit OmniAuth, und der timestamp sollte einfach sein (Mal.nun.to_i richtig?). Es gibt zwei Dinge, die ich nicht wissen, wie zu generieren -- das oauth_nonce und die oauth_signature.
Gemäß der oauth-docs, die ich generieren die nonce über den timestamp, aber wie genau sollte ich das tun? Muss es eine bestimmte Länge und beschränkt sich auf bestimmte Charaktere?
Und natürlich die Unterschrift. Wie würde ich generieren Sie einen HMAC-SHA1 sig mit ruby? Ich weiß das oauth-gem kann es tun, aber ich würde eher zu generieren, die es mir mit OmniAuth. Blick auf den code, ich habe Probleme bei der Entschlüsselung, wie die oauth-gem generiert die sig.
Danke für jede Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
für die Signatur
Müssen Sie nicht erzeugen, die nonce, die von dem Zeitstempel, aber es kann Sinn machen, da der timestamp ist offensichtlich einzigartig ist, so macht es ein guter Anfang, Eingang, für jede Randomisierung Funktion.
Ich diese (das hab ich aus einer anderen Frage hier und modifiziert)
aber Sie können alles, was, die Sie erzeugt einen eindeutigen string.
Sehen dieser Kern durch erikeldridge auf github und Beginner ' s Guide to OAuth für mehr
Bearbeiten
Hab ich da gefunden, es gibt einen besseren Weg, um generiert zufällige Zeichenfolgen in der Ruby standard library, SecureRandom.
nonce = OpenSSL::Random.random_bytes 12
Eine nonce kann auch einfach ein large-ish, richtig Zufallszahl - zum Beispiel mithilfe von Ruby ' s SecureRandom-Klasse (nicht verwenden 'rand'):
...
Dieser generiert eine 16-byte-Zufallszahl, die in hex-format.
Warum du nicht einfach die Oauth-ruby-gems zu tun ?