Skip to content
library for easily querying a useraddress for it's webfinger record
JavaScript HTML
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
demo
src
test remove intermediate lookupLinks function
.gitignore
.travis.yml
LICENSE
README.md
RELEASE_CHECKLIST
bower.json v2.3.2
gulpfile.js
package.json

README.md

webfinger.js

A webfinger client that runs both in the browser and in node.js.

Build Status Code Climate license downloads release

Features

  • defaults to TLS only

  • optional URI fallback (for older services which use host-meta or host-meta.json URI endpoints)

  • optional support for WebFist

Initialize

node.js

In node.js you should first require the module:

  var WebFinger = require('webfinger.js');

Browser

When you include the src/webfinger.js script, a WebFinger object will be exposed.

Use

  var webfinger = new WebFinger({
    webfist_fallback: true,  // defaults to false
    tls_only: true,          // defaults to true
    uri_fallback: false,     // defaults to false
    request_timeout: 10000,  // defaults to 10000
  });

  webfinger.lookup('nick@silverbucket.net', function (err, p) {
    if (err) {
      console.log('error: ', err.message);
    } else {
      console.log(p);
    }
  });


// example output:
// {
//   idx: {
//     properties: {
//       name: "Nick Jennings"
//     },
//     links: {
//       avatar: [{ href: '<url>' }],
//       blog: [{ href: '<url>' }],
//       vcard: [href: '<url' }]
//       ... etc.
//     },
//   }
//   json: { ... raw json output ... }
//   object: { ... unformatted but parsed into native javascript object ... }
// }

  webfinger.lookupLink('nick@silverbucket.net', 'remotestorage' function (err, p) {
    if (err) {
      console.log('error: ', err.message);
    } else {
      console.log(p);
    }
  });

// example output (if at least one link with rel="remotestorage" exists):
// {
//   href: 'https://storage.5apps.com/nick',
//   rel : 'remotestorage',
//   properties: {
//     'http://remotestorage.io/spec/version': 'draft-dejong-remotestorage-02',
//     'http://tools.ietf.org/html/rfc6749#section-4.2': 'https://5apps.com/rs/oauth/nick',
//     'http://tools.ietf.org/html/rfc6750#section-2.3': false,
//     'http://tools.ietf.org/html/rfc2616#section-14.16': false
//   }
// }

Demo

See a working demo here

Other Clients

The pump.io project uses a node.js webfinger client library. See https://github.com/evanp/webfinger

License

webfinger.js is released under the LGPL. See LICENSE

Something went wrong with that request. Please try again.