remotestorage-server

    0.5.11 • Public • Published

    remotestorage-server

    The remoteStorage core from https://github.com/remotestorage/starter-kit

    Build Status devDependency Status Code Climate

    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.

    Keywords

    none

    Install

    npm i remotestorage-server

    DownloadsWeekly Downloads

    272

    Version

    0.5.11

    License

    MIT

    Last publish

    Collaborators

    • michielbdejong