/twofactorauth

List of sites with two factor auth support which includes SMS, email, phone calls, hardware, and software.

Primary LanguageHTMLOtherNOASSERTION

2fa.directory

Build Status License Twitter

A list of popular sites and whether or not they support two factor authentication.

The Goal 🥅

The goal of this project is to build a website (2fa.directory) with a list of popular sites that support two factor authentication, as well as the methods that they provide.

Our hope is to aid consumers who are deciding between alternative services based on the security they offer for their customers. This project also serves as an indicator of general security efforts used on a site.

Contributing ✏️

2fa.directory is only possible thanks to community contributions. We welcome all contributions to the project. If you would like to contribute, please read the entire guidelines in CONTRIBUTING.md.

Installing dependencies 🛠️

1. Docker

docker pull 2factorauth/twofactorauth

2. Snap

  sudo snap install ruby --classic
  npm i babel-minify
  bundle config set path './vendor/cache'
  bundle install

3. Manual installation

This is the most difficult option and recommended for environments where Docker or Snap can't be used.

GNU/Linux and WSL:

sudo apt install build-essential ruby-bundler ruby-dev make gcc g++ zlib1g-dev npm
npm i babel-minify
bundle config set path './vendor/cache'
bundle install

MacOS (Requires Xcode):

# Install homebrew
xcode-select --install
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh

# Install ruby & nodejs(npm)
brew install ruby
brew install nodejs
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile

# Install Bundler and dependencies
gem install bundler
bundle config set path './vendor/cache'
bundle install
npm i babel-minify

Building 🏃

Docker (Windows/Linux/MacOS):

docker run -p 4000:4000 -v $(pwd):/twofactorauth 2factorauth/twofactorauth

Snap/Manual:

# Create _data/all.json
ruby ./scripts/join-entries.rb > _data/all.json

# Generating API files
mkdir -p api/v1 api/v2 api/v3
bundle exec ruby ./scripts/APIv1.rb
bundle exec ruby ./scripts/APIv2.rb
bundle exec ruby ./scripts/APIv3.rb

# Building the site
bundle exec jekyll build

# Minify JS (Optional)
./scripts/minify-js.sh

# Building regional sites (Optional)
ruby ./scripts/regions.rb

To run the site on a minimal WEBrick webserver, do:

bundle exec jekyll serve

The website should now be accessible from http://localhost:4000.

License ⚖️

This code is distributed under the MIT license. For more info, read the LICENSE file distributed with the source code.