Easily obtain OAuth credentials for the Dropbox API.
Simple authentication helper for Dropbox.
$ npm install dropbox-authenticator
The authenticator is a tiny object that exposes two single functions.
initiate function asks Dropbox for a request token and generates a URL
that you should send your user to. You are then responsible for providing
a calback URL that Dropbox can send the user to.
NOTE: The Authenticator attaches an ID to the callback URL which makes it possible to have several simultaneous authentication attempts by several users. It does however make it impossible to use your own querystring with the callback url.
Once the user comes back to you, you complete the authorization by calling
complete function takes the request and response streams from an HTTP
server request listener. As well as a callback function. Once authorization is
complete this function is called with the OAuth credentials. It's up to you
to store these.
Quick 'n dirty example showing how to use this thing:
var Authenticator = require'dropbox-authenticator';var http = require'http';var auth = AuthenticatorYOUR_APP_ID YOUR_APP_SECRET;// Handle authorizationshttpcreateServerif requrl === '/'authinitiate''reswrite'<a href="' + url + '">Authorize!</a>';resend;;elseauthcompletereq res// Save credentials or something hereconsole.logcredentials;;;
Note that this fails if many users access the server simultaneously. This is
Authenticator needs to store some tokens internally between each
step. I'm thinking about a fix for this. In the mean time I recommend doing
some kind of session thing and tying one instance of
Authenticator to each