DEPRECATED - Migrated to https://github.com/mozilla/fxa
Перейти к файлу
vladikoff 7c6d5f7f7a fix(deps): downgrade to hapi 14 2016-10-03 14:49:08 -04:00
bin feature(newrelic): add optional newrelic integration 2016-09-06 15:41:04 -07:00
config feat(security): record event names and ip addresses for important events 2016-09-20 15:25:53 -07:00
docs feat(customs): return localized retry after data (#1453) r=vbudhram 2016-09-14 16:57:27 -04:00
grunttasks fix(deps): update dev deps and latest eslint 2016-09-14 00:51:51 -04:00
lib fix(deps): downgrade to hapi 14 2016-10-03 14:49:08 -04:00
scripts fix(deps): update dev deps and latest eslint 2016-09-14 00:51:51 -04:00
test Merge pull request #1469 from mozilla/issue-1464-unbuffer-security-events 2016-09-23 15:42:23 +01:00
.dockerignore feat(docker): Add Dockerfile for self-hosting 2016-01-26 09:34:45 +01:00
.env.dev fix(config): adjust local dev config to support signin confirmation (#1313) r=vbudhram,shane-tomlinson 2016-06-29 09:26:51 -04:00
.eslintrc chore(build): Replacing JSHint with ESLint 2015-06-18 17:39:32 -07:00
.gitignore fix(tests): switch coverage tool, adjust log_tests (#1348) r=vbudhram 2016-07-18 16:38:50 -04:00
.nsprc chore(nsp): remove exceptions (#1455) r=seanmonstar 2016-09-14 14:04:24 -04:00
.travis.yml chore(deps): update to latest version of hapi (#1330) r=rfk,seanmonstar,vbudhram 2016-09-13 20:52:06 -04:00
AUTHORS Add Rishi Baldawa to AUTHORS 2015-05-29 10:41:11 +10:00
CHANGELOG.md Release v1.70.0 2016-09-23 17:23:22 -07:00
CONTRIBUTING.md docs(contributing): Mention git commit guidelines 2016-01-21 12:24:41 +01:00
Gruntfile.js chore(build): Replacing JSHint with ESLint 2015-06-18 17:39:32 -07:00
LICENSE Add a proper copy of the MPL 2014-05-16 17:27:17 +12:00
README.md chore(deps): update to latest version of hapi (#1330) r=rfk,seanmonstar,vbudhram 2016-09-13 20:52:06 -04:00
Vagrantfile changed vagrant synced_folder to rsync 2014-03-11 13:53:44 -07:00
npm-shrinkwrap.json fix(deps): downgrade to hapi 14 2016-10-03 14:49:08 -04:00
package.json fix(deps): downgrade to hapi 14 2016-10-03 14:49:08 -04:00

README.md

Firefox Accounts Server

Build Status

This project implements the core server-side API for Firefox Accounts. It provides account, device and encryption-key management for the Mozilla Cloud Services ecosystem.

Overview

Detailed design document

Detailed API spec

Guidelines for Contributing

Prerequisites

  • node 4.5.0 or higher
  • npm
  • Grunt

Install

On some systems running the server as root will cause working directory permissions issues with node. It is recommended that you create a separate, standard user to ensure a clean and more secure installation.

Clone the git repository and install dependencies:

git clone git://github.com/mozilla/fxa-auth-server.git
cd fxa-auth-server
npm install

To start the server in dev memory store mode (ie. NODE_ENV=dev), run:

npm start

This runs a script scripts/start-local.sh as defined in package.json. This will start up 4 services, three of which listen on the following ports (by default):

  • bin/key_server.js on port 9000
  • test/mail_helper.js on port 9001
  • ./node_modules/fxa-customs-server/bin/customs_server.js on port 7000
  • bin/notifier.js (no port)

When you Ctrl-c your server, all 4 processes will be stopped.

To start the server in dev MySQL store mode (ie. NODE_ENV=dev), run:

npm run start-mysql

Testing

Run tests with:

npm test

To select a specific glob of tests to run:

npm test -- test/local/account_routes.js test/local/password_*
  • Note: stop the auth-server before running tests. Otherwise, they will fail with obscure errors.

Reference Client

https://github.com/mozilla/fxa-js-client

Dev Deployment

Refer to https://github.com/mozilla/fxa-dev.git.

Configuration

Configuration of this project is managed by convict, using the schema in config/index.js.

Default values from this schema can be overridden in two ways:

  1. By setting individual environment variables, as indicated by the env property for each item in the schema.

    For example:

    export CONTENT_SERVER_URL="http://your.content.server.org"
    
  2. By specifying the path to a conforming JSON file, or a comma-separated list of paths, using the CONFIG_FILES environment variable. Files specified in this way are loaded when the server starts. If the server fails to start, it usually indicates that one of these JSON files does not conform to the schema; check the error message for more information.

    For example:

    export CONFIG_FILES="~/fxa-content-server.json,~/fxa-db.json"
    

Troubleshooting

Firefox Accounts authorization is a complicated flow. You can get verbose logging by adjusting the log level in the config.json on your deployed instance. Add a stanza like:

"log": {
  "level": "trace"
}

Valid level values (from least to most verbose logging) include: "fatal", "error", "warn", "info", "trace", "debug".

Database integration

This server depends on a database server from the fxa-auth-db-mysql repo. When running the tests, it uses a memory-store that mocks behaviour of the production MySQL server.

License

MPL 2.0