remotestorage-server
v0.5.11
Published
The remoteStorage core from https://github.com/remotestorage/starter-kit
Downloads
697
Readme
remotestorage-server
The remoteStorage core from https://github.com/remotestorage/starter-kit
interface
//set up the remoteStorage server instance:
var RemotestorageServer = require('remotestorage-server'),
specVersion = 'draft-dejong-remotestorage-02',
tokenStore = { _data: {}, get: function(username, token, cb) {
cb(null, this._data[username+':'+token]);
}, set: function(username, token, scopes, cb) {
this._data[username+':'+token] = scopes; cb(null); } },
dataStore = { _data: {}, get: function(username, key, cb) {
cb(null, this._data[username+':'+key]);
}, set: function(username, key, buf, cb) {
this._data[usernae+':'+key] = buf; cb(null);
}
};
var serverInstance = new RemotestorageServer(specVersion, tokenStore, dataStore);
//set up a https server:
var fs = require('fs'),
https = require('https'),
httpsConfig = {
key: fs.readFileSync('./tls.key'),
cert: fs.readFileSync('./tls.cert'),
ca: fs.readFileSync('./ca.pem')
};
//add access tokens (you would typically do this from an ajax call in your OAuth dialog):
tokenStore._data['me:SECRET'] = serverInstance.makeScopePaths(['tasks:rw', 'contacts:r']);
tokenStore._data['me:GOD'] = serverInstance.makeScopePaths(['*:rw']);
//serve storage:
https.createServer(httpsConfig, serverInstance.storage).listen(8000);
//get the link for including in your webfinger record:
var link = remotestorageServer.getWebfingerLink('https', 'example.com', 8000, 'me', 'https://example.com/auth/me');
You will also need:
- a webfinger server, serving your webfinger record on path
/.well-known/webfinger
on port 443 (or on port 80 when testing on localhost). - an html page which serves as an OAuth dialog
See https://github.com/remotestorage/starter-kit for an examples of both.