From ba192f12e381842c90df0fab2fcb1a23cae97fc4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 27 Jan 2017 20:28:46 +0100 Subject: Added optional two-factor authentication --- config/initializers/devise.rb | 6 ++++-- config/initializers/filter_parameter_logging.rb | 2 +- config/locales/en.yml | 6 ++++++ config/locales/simple_form.en.yml | 1 + config/routes.rb | 7 +++++++ 5 files changed, 19 insertions(+), 3 deletions(-) (limited to 'config') diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 85ba1082b..5eba34aa5 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -1,6 +1,8 @@ -# Use this hook to configure devise mailer, warden hooks and so forth. -# Many of these configuration options can be set straight in your model. Devise.setup do |config| + config.warden do |manager| + manager.default_strategies(scope: :user).unshift :two_factor_authenticatable + end + # The secret key used by Devise. Devise uses this key to generate # random tokens. Changing this key will render invalid all existing # confirmation, reset password and unlock tokens in the database. diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index d2452f355..06cb15bbb 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -1,4 +1,4 @@ # Be sure to restart your server when you modify this file. # Configure sensitive parameters which will be filtered from the log file. -Rails.application.config.filter_parameters += [:password, :private_key, :public_key] +Rails.application.config.filter_parameters += [:password, :private_key, :public_key, :otp_attempt] diff --git a/config/locales/en.yml b/config/locales/en.yml index 831fdbc7a..4f02a87e2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -93,6 +93,7 @@ en: back: Back to Mastodon edit_profile: Edit profile preferences: Preferences + two_factor_auth: Two-factor Authentication statuses: over_character_limit: character limit of %{max} exceeded stream_entries: @@ -104,6 +105,11 @@ en: time: formats: default: "%b %d, %Y, %H:%M" + two_factor_auth: + description_html: If you enable two-factor authentication, logging in will require you to be in possession of your phone, which will generate tokens for you to enter. + disable: Disable + enable: Enable + instructions_html: "Scan this QR code into Google Authenticator or a similiar app on your phone. From now on, that app will generate tokens that you will have to enter when logging in." users: invalid_email: The e-mail address is invalid will_paginate: diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 578208700..e45a9a7a6 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -17,6 +17,7 @@ en: locked: Make account private new_password: New password note: Bio + otp_attempt: If enabled, two-factor token password: Password username: Username interactions: diff --git a/config/routes.rb b/config/routes.rb index 9423a0ae2..87f35770a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -47,6 +47,13 @@ Rails.application.routes.draw do namespace :settings do resource :profile, only: [:show, :update] resource :preferences, only: [:show, :update] + + resource :two_factor_auth, only: [:show] do + member do + post :enable + post :disable + end + end end resources :media, only: [:show] -- cgit