This repository contains several distinct things related to BrowserID:
- the browserid server - a node.js server which implements a web services api, stores a record of users, the email addresses they've verified, a bcrypted password, outstanding verification tokens, etc
- the verifier - a stateless node.js server which does cryptographic verification of assertions. This thing is hosted on browserid.org as a convenience, but people using browserid can choose to relocated it if they want to their own servers.
- sample and test code - to test the above
Here's the software you'll need installed:
- node.js (>= 0.6.2): http://nodejs.org/
- npm: http://npmjs.org/ (or bundled with node in 0.6.3+)
- install node and npm
npm installto install 3rd party libraries and generate keys
npm startto start the servers locally
- visit the demo application ('rp') in your web browser (url output on the console at runtime)
You can stop the servers with a Cntl-C in the terminal.
- rm -Rf var node_modules
- npm install
Unit tests can be run by invoking
npm test at the top level. At present,
there are three classes of unit tests to be run:
- Backend unit tests against a custom, zero-dependency JSON database
- Backend unit tests against MySQL, what we use in production
- Frontend unit tests run headlessly against PhantomJS
You can control which tests are run using the
WHAT_TESTS env var, see
scripts/test for details.
branching & release model - You'll notice some funky branching conventions, like the default branch is named
dev rather than
master as you might expect. We're using gitflow: the approach is described in a blog post.
contributions - please issue pull requests targeted at the
All source code here is available under the MPL 2 license, unless otherwise indicated.