boring_generators 0.6.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +7 -1
- data/CHANGELOG.md +23 -0
- data/Gemfile.lock +65 -65
- data/README.md +20 -7
- data/Rakefile +1 -0
- data/lib/boring_generators/version.rb +1 -1
- data/lib/generators/boring/active_storage/aws/install/install_generator.rb +10 -8
- data/lib/generators/boring/active_storage/azure/install/install_generator.rb +9 -7
- data/lib/generators/boring/active_storage/google/install/install_generator.rb +9 -7
- data/lib/generators/boring/ahoy/install/install_generator.rb +31 -0
- data/lib/generators/boring/ahoy/install/templates/README +10 -0
- data/lib/generators/boring/audit/install/install_generator.rb +12 -9
- data/lib/generators/boring/bullet/install/install_generator.rb +4 -8
- data/lib/generators/boring/ci/github_action/install/install_generator.rb +1 -1
- data/lib/generators/boring/ci/github_action/install/templates/ci.yml.tt +15 -2
- data/lib/generators/boring/devise/install/install_generator.rb +1 -7
- data/lib/generators/boring/font_awesome/ruby_gem/install/install_generator.rb +3 -8
- data/lib/generators/boring/graphql/install/install_generator.rb +3 -7
- data/lib/generators/boring/oauth/base_generator.rb +63 -0
- data/lib/generators/boring/oauth/facebook/install/install_generator.rb +12 -67
- data/lib/generators/boring/oauth/facebook/install/templates/README +2 -3
- data/lib/generators/boring/oauth/github/install/install_generator.rb +36 -0
- data/lib/generators/boring/oauth/github/install/templates/README +23 -0
- data/lib/generators/boring/oauth/github/install/templates/omniauth_callbacks_controller.rb +21 -0
- data/lib/generators/boring/oauth/google/install/install_generator.rb +36 -0
- data/lib/generators/boring/oauth/google/install/templates/README +23 -0
- data/lib/generators/boring/oauth/google/install/templates/omniauth_callbacks_controller.rb +21 -0
- data/lib/generators/boring/oauth/twitter/install/install_generator.rb +36 -0
- data/lib/generators/boring/oauth/twitter/install/templates/README +23 -0
- data/lib/generators/boring/oauth/twitter/install/templates/omniauth_callbacks_controller.rb +21 -0
- data/lib/generators/boring/paper_trail/install/install_generator.rb +40 -0
- data/lib/generators/boring/payments/stripe/install/install_generator.rb +43 -0
- data/lib/generators/boring/payments/stripe/install/templates/README +21 -0
- data/lib/generators/boring/payments/stripe/install/templates/controllers/stripe/checkouts_controller.rb +63 -0
- data/lib/generators/boring/payments/stripe/install/templates/stripe.rb +1 -0
- data/lib/generators/boring/payments/stripe/install/templates/views/stripe/checkouts/create.js.erb +13 -0
- data/lib/generators/boring/payments/stripe/install/templates/views/stripe/checkouts/show.html.erb +8 -0
- data/lib/generators/boring/pry/install/install_generator.rb +4 -9
- data/lib/generators/boring/pundit/install/install_generator.rb +1 -7
- data/lib/generators/boring/rails_admin/install/install_generator.rb +36 -0
- data/lib/generators/boring/rubocop/install/install_generator.rb +3 -1
- data/lib/generators/boring/simple_form/install/install_generator.rb +4 -8
- data/lib/generators/boring/stimulus/install/install_generator.rb +24 -0
- data/lib/generators/boring/tailwind/install/install_generator.rb +11 -10
- data/lib/generators/boring/tailwind/install/templates/README +13 -0
- data/lib/generators/boring/twilio/install/install_generator.rb +26 -0
- data/lib/generators/boring/twilio/install/templates/README +11 -0
- data/lib/generators/boring/twilio/install/templates/twilio.rb +4 -0
- metadata +27 -2
@@ -10,14 +10,10 @@ module Boring
|
|
10
10
|
desc: "Skips adding bullet development configuration"
|
11
11
|
|
12
12
|
def add_bullet_gem
|
13
|
-
say "Adding
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
\tgem "bullet"
|
18
|
-
RUBY
|
19
|
-
insert_into_file "Gemfile", bullet_gem_content, after: /group :development do/
|
20
|
-
run "bundle install"
|
13
|
+
say "Adding bullet gem", :green
|
14
|
+
Bundler.with_unbundled_env do
|
15
|
+
run "bundle add bullet --group development"
|
16
|
+
end
|
21
17
|
end
|
22
18
|
|
23
19
|
def add_bullet_gem_configuration
|
@@ -10,7 +10,7 @@ module Boring
|
|
10
10
|
RUBY_VERSION_FILE = ".ruby-version"
|
11
11
|
|
12
12
|
DEFAULT_RUBY_VERSION = ".ruby-version"
|
13
|
-
DEFAULT_NODE_VERSION = "
|
13
|
+
DEFAULT_NODE_VERSION = "14"
|
14
14
|
DEFAULT_REPOSITORY_NAME = "boring_generators"
|
15
15
|
|
16
16
|
class_option :ruby_version, type: :string, aliases: "-v",
|
@@ -1,5 +1,9 @@
|
|
1
1
|
name: CI
|
2
|
-
on:
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches: [ main ]
|
5
|
+
pull_request:
|
6
|
+
branches: [ main ]
|
3
7
|
jobs:
|
4
8
|
test:
|
5
9
|
name: Tests
|
@@ -10,8 +14,9 @@ jobs:
|
|
10
14
|
env:
|
11
15
|
POSTGRES_USER: <%= @repository_name %>
|
12
16
|
POSTGRES_DB: <%= "#{@repository_name}_test" %>
|
13
|
-
POSTGRES_PASSWORD:
|
17
|
+
POSTGRES_PASSWORD: postgres
|
14
18
|
ports: ["5432:5432"]
|
19
|
+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
15
20
|
|
16
21
|
steps:
|
17
22
|
- name: Checkout code
|
@@ -25,6 +30,8 @@ jobs:
|
|
25
30
|
uses: actions/setup-node@v1
|
26
31
|
with:
|
27
32
|
node-version: <%= @node_version %>
|
33
|
+
- name: Install library for postgres
|
34
|
+
run: sudo apt-get install libpq-dev
|
28
35
|
- name: Find yarn cache location
|
29
36
|
id: yarn-cache
|
30
37
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
@@ -43,7 +50,13 @@ jobs:
|
|
43
50
|
RAILS_ENV: test
|
44
51
|
PGHOST: localhost
|
45
52
|
PGUSER: <%= @repository_name %>
|
53
|
+
PGPASSWORD: postgres
|
46
54
|
run: |
|
47
55
|
bin/rails db:setup
|
48
56
|
- name: Run tests
|
57
|
+
env:
|
58
|
+
RAILS_ENV: test
|
59
|
+
PGHOST: localhost
|
60
|
+
PGUSER: <%= @repository_name %>
|
61
|
+
PGPASSWORD: postgres
|
49
62
|
run: bundle exec rails test # TODO: Update the test runner command as per your requirement.
|
@@ -16,14 +16,8 @@ module Boring
|
|
16
16
|
|
17
17
|
def add_devise_gem
|
18
18
|
say "Adding devise gem", :green
|
19
|
-
devise_gem = <<~RUBY
|
20
|
-
\n
|
21
|
-
# for authentication
|
22
|
-
gem 'devise', '~> 4.7'
|
23
|
-
RUBY
|
24
|
-
append_to_file "Gemfile", devise_gem
|
25
19
|
Bundler.with_unbundled_env do
|
26
|
-
run "bundle
|
20
|
+
run "bundle add devise"
|
27
21
|
end
|
28
22
|
end
|
29
23
|
|
@@ -8,14 +8,9 @@ module Boring
|
|
8
8
|
|
9
9
|
def add_font_awesome_sass_gem
|
10
10
|
say "Adding font_awesome_sass gem", :green
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# for adding font-awesome icons
|
15
|
-
gem 'font-awesome-sass', '~> 5.13'
|
16
|
-
RUBY
|
17
|
-
append_to_file "Gemfile", font_awesome_sass_gem
|
18
|
-
run "bundle install"
|
11
|
+
Bundler.with_unbundled_env do
|
12
|
+
run "bundle add font-awesome-sass"
|
13
|
+
end
|
19
14
|
end
|
20
15
|
|
21
16
|
def import_font_awesome_stylesheet
|
@@ -13,13 +13,9 @@ module Boring
|
|
13
13
|
|
14
14
|
def add_graphql_gem
|
15
15
|
say "Adding graphql gem", :green
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
gem 'graphql', '~> 1.11'
|
20
|
-
RUBY
|
21
|
-
append_to_file "Gemfile", graphql_gem
|
22
|
-
run "bundle install"
|
16
|
+
Bundler.with_unbundled_env do
|
17
|
+
run "bundle add graphql"
|
18
|
+
end
|
23
19
|
end
|
24
20
|
|
25
21
|
def run_graphql_generator
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
|
5
|
+
module Boring
|
6
|
+
module Oauth
|
7
|
+
module BaseGenerator
|
8
|
+
def add_provider_and_uuid_user_details
|
9
|
+
say "Adding migration to add provider and uuid columns to users", :green
|
10
|
+
Bundler.with_unbundled_env do
|
11
|
+
run "DISABLE_SPRING=1 bundle exec rails generate migration AddOmniauthToUsers provider:string uid:string"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def configure_devise_omniauth
|
16
|
+
say "Adding omniauth devise configuration", :green
|
17
|
+
if File.exist?("config/initializers/devise.rb")
|
18
|
+
insert_into_file "config/initializers/devise.rb", <<~RUBY, after: /Devise.setup do \|config\|/
|
19
|
+
\n
|
20
|
+
\tconfig.omniauth :#{@oauth_name}, "APP_ID", "APP_SECRET"
|
21
|
+
RUBY
|
22
|
+
else
|
23
|
+
raise MissingDeviseConfigurationError, <<~ERROR
|
24
|
+
Looks like the devise installation is incomplete. Could not find devise.rb in config/initializers.
|
25
|
+
ERROR
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def add_omniauth_callback_routes
|
30
|
+
devise_route = '# devise_for :users, controllers: { omniauth_callbacks: "users/omniauth_callbacks" }'.dup
|
31
|
+
route devise_route
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_omniauth_callback_controller
|
35
|
+
say "Copying omniauth_callbacks_controller.rb", :green
|
36
|
+
template("omniauth_callbacks_controller.rb", "app/controllers/users/omniauth_callbacks_controller.rb")
|
37
|
+
end
|
38
|
+
|
39
|
+
def configure_and_add_devise_setting_in_user_model
|
40
|
+
say "Configuring #{@oauth_name.to_s} omniauth for user model", :green
|
41
|
+
insert_into_file "app/models/user.rb", <<~RUBY, after: /class User < ApplicationRecord/
|
42
|
+
\n\tdevise :omniauthable, omniauth_providers: %i[#{@oauth_name}]
|
43
|
+
|
44
|
+
\tdef self.from_omniauth(auth)
|
45
|
+
\twhere(provider: auth.provider, uid: auth.uid).first_or_create do |user|
|
46
|
+
\tuser.email = auth.info.email
|
47
|
+
\tuser.password = Devise.friendly_token[0, 20]
|
48
|
+
\t# user.name = auth.info.name # assuming the user model has a name
|
49
|
+
\t# user.image = auth.info.image # assuming the user model has an image
|
50
|
+
\t# If you are using confirmable and the provider(s) you use validate emails,
|
51
|
+
\t# uncomment the line below to skip the confirmation emails.
|
52
|
+
\t# user.skip_confirmation!
|
53
|
+
\tend
|
54
|
+
\tend
|
55
|
+
RUBY
|
56
|
+
end
|
57
|
+
|
58
|
+
def show_readme
|
59
|
+
readme "README"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -1,11 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'bundler'
|
4
|
+
require 'generators/boring/oauth/base_generator'
|
4
5
|
|
5
6
|
module Boring
|
6
7
|
module Oauth
|
7
8
|
module Facebook
|
8
9
|
class InstallGenerator < Rails::Generators::Base
|
10
|
+
include Boring::Oauth::BaseGenerator
|
11
|
+
|
9
12
|
class MissingDeviseConfigurationError < StandardError; end
|
10
13
|
|
11
14
|
desc "Adds facebook OmniAuth to the application"
|
@@ -13,77 +16,19 @@ module Boring
|
|
13
16
|
|
14
17
|
def add_facebook_omniauth_gem
|
15
18
|
say "Adding Facebook OmniAuth gem", :green
|
16
|
-
facebook_omniauth_gem = <<~RUBY
|
17
|
-
\n
|
18
|
-
# for omniauth facebook
|
19
|
-
gem 'omniauth-facebook', '~> 8.0'
|
20
|
-
RUBY
|
21
|
-
append_to_file "Gemfile", facebook_omniauth_gem
|
22
|
-
Bundler.with_unbundled_env do
|
23
|
-
run "bundle install"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def add_provider_and_uuid_user_details
|
28
|
-
say "Adding migration to add provider and uuid columns to users", :green
|
29
19
|
Bundler.with_unbundled_env do
|
30
|
-
run "
|
20
|
+
run "bundle add omniauth-facebook"
|
31
21
|
end
|
32
22
|
end
|
33
23
|
|
34
|
-
def
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
raise MissingDeviseConfigurationError, <<~ERROR
|
43
|
-
Looks like the devise installation is incomplete. Could not find devise.rb in config/initializers.
|
44
|
-
ERROR
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def add_omniauth_callback_routes
|
49
|
-
devise_route = '# devise_for :users, controllers: { omniauth_callbacks: "users/omniauth_callbacks" }'.dup
|
50
|
-
route devise_route
|
51
|
-
end
|
52
|
-
|
53
|
-
def add_omniauth_callback_controller
|
54
|
-
say "Copying omniauth_callbacks_controller.rb", :green
|
55
|
-
template("omniauth_callbacks_controller.rb", "app/controllers/users/omniauth_callbacks_controller.rb")
|
56
|
-
end
|
57
|
-
|
58
|
-
def configure_and_add_devise_setting_in_user_model
|
59
|
-
say "Configuring facebook omniauth for user model", :green
|
60
|
-
insert_into_file "app/models/user.rb", <<~RUBY, after: /class User < ApplicationRecord/
|
61
|
-
|
62
|
-
\tdevise :omniauthable, omniauth_providers: %i[facebook]
|
63
|
-
|
64
|
-
\tdef self.from_omniauth(auth)
|
65
|
-
\twhere(provider: auth.provider, uid: auth.uid).first_or_create do |user|
|
66
|
-
\tuser.email = auth.info.email
|
67
|
-
\tuser.password = Devise.friendly_token[0, 20]
|
68
|
-
\tuser.name = auth.info.name # assuming the user model has a name
|
69
|
-
\t# user.image = auth.info.image # assuming the user model has an image
|
70
|
-
\t# If you are using confirmable and the provider(s) you use validate emails,
|
71
|
-
\t# uncomment the line below to skip the confirmation emails.
|
72
|
-
\t# user.skip_confirmation!
|
73
|
-
\tend
|
74
|
-
\tend
|
75
|
-
RUBY
|
76
|
-
end
|
77
|
-
|
78
|
-
def add_the_facebook_devise_omniauth_view
|
79
|
-
insert_into_file "app/views/users/sessions/new.html.erb", <<~RUBY, after: /<%= render "users\/shared\/links" %>/
|
80
|
-
|
81
|
-
<%= link_to "Sign in with Facebook", user_facebook_omniauth_authorize_path %>
|
82
|
-
RUBY
|
83
|
-
end
|
84
|
-
|
85
|
-
def show_readme
|
86
|
-
readme "README"
|
24
|
+
def invoke_common_generator_methods
|
25
|
+
@oauth_name = :facebook
|
26
|
+
add_provider_and_uuid_user_details
|
27
|
+
configure_devise_omniauth
|
28
|
+
add_omniauth_callback_routes
|
29
|
+
add_omniauth_callback_controller
|
30
|
+
configure_and_add_devise_setting_in_user_model
|
31
|
+
show_readme
|
87
32
|
end
|
88
33
|
end
|
89
34
|
end
|
@@ -16,9 +16,8 @@ Some setup you must do manually if you haven't yet:
|
|
16
16
|
For example:
|
17
17
|
|
18
18
|
config.omniauth :facebook, "APP_ID", "APP_SECRET"
|
19
|
-
3. Ensure you have added the facebook omniauth route in the devise session view:
|
20
|
-
For example:
|
21
19
|
|
22
|
-
|
20
|
+
3. Your omniauth callback URL will be: `<host>/users/auth/facebook/callback`. Please update
|
21
|
+
callback URL in Facebook after registering your omniauth application.
|
23
22
|
|
24
23
|
===============================================================================
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
require 'generators/boring/oauth/base_generator'
|
5
|
+
|
6
|
+
module Boring
|
7
|
+
module Oauth
|
8
|
+
module Github
|
9
|
+
class InstallGenerator < Rails::Generators::Base
|
10
|
+
include Boring::Oauth::BaseGenerator
|
11
|
+
|
12
|
+
class MissingDeviseConfigurationError < StandardError; end
|
13
|
+
|
14
|
+
desc "Adds GitHub OmniAuth to the application"
|
15
|
+
source_root File.expand_path("templates", __dir__)
|
16
|
+
|
17
|
+
def add_github_omniauth_gem
|
18
|
+
say "Adding GitHub OmniAuth gem", :green
|
19
|
+
Bundler.with_unbundled_env do
|
20
|
+
run "bundle add omniauth-github"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def invoke_common_generator_methods
|
25
|
+
@oauth_name = :github
|
26
|
+
add_provider_and_uuid_user_details
|
27
|
+
configure_devise_omniauth
|
28
|
+
add_omniauth_callback_routes
|
29
|
+
add_omniauth_callback_controller
|
30
|
+
configure_and_add_devise_setting_in_user_model
|
31
|
+
show_readme
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
Some setup you must do manually if you haven't yet:
|
4
|
+
|
5
|
+
1. Ensure you have overridden or uncommented the routes for generated omniauth callback controllers in your routes.rb.
|
6
|
+
For example:
|
7
|
+
|
8
|
+
Rails.application.routes.draw do
|
9
|
+
devise_for :users, controllers: {
|
10
|
+
omniauth_callbacks: "users/omniauth_callbacks"
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
2. Update the devise github omniauth APP_ID and APP_SECRET in "config/initializers/devise.rb"
|
15
|
+
after registering the Rails application on: https://github.com/settings/applications/new
|
16
|
+
For example:
|
17
|
+
|
18
|
+
config.omniauth :github, "APP_ID", "APP_SECRET"
|
19
|
+
|
20
|
+
3. Your omniauth callback URL will be: `<host>/users/auth/github/callback`. Please update
|
21
|
+
callback URL in Github after registering your omniauth application.
|
22
|
+
|
23
|
+
===============================================================================
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
2
|
+
# See https://github.com/omniauth/omniauth/wiki/FAQ#rails-session-is-clobbered-after-callback-on-developer-strategy
|
3
|
+
skip_before_action :verify_authenticity_token, only: :github
|
4
|
+
|
5
|
+
def github
|
6
|
+
# You need to implement the method below in your model (e.g. app/models/user.rb)
|
7
|
+
@user = User.from_omniauth(request.env["omniauth.auth"])
|
8
|
+
|
9
|
+
if @user.persisted?
|
10
|
+
sign_in_and_redirect @user, event: :authentication #this will throw if @user is not activated
|
11
|
+
set_flash_message(:notice, :success, kind: "GitHub") if is_navigational_format?
|
12
|
+
else
|
13
|
+
session["devise.github_data"] = request.env["omniauth.auth"].except(:extra) # Removing extra as it can overflow some session stores
|
14
|
+
redirect_to new_user_registration_url
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def failure
|
19
|
+
redirect_to root_path
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
require 'generators/boring/oauth/base_generator'
|
5
|
+
|
6
|
+
module Boring
|
7
|
+
module Oauth
|
8
|
+
module Google
|
9
|
+
class InstallGenerator < Rails::Generators::Base
|
10
|
+
include Boring::Oauth::BaseGenerator
|
11
|
+
|
12
|
+
class MissingDeviseConfigurationError < StandardError; end
|
13
|
+
|
14
|
+
desc "Adds Google OmniAuth to the application"
|
15
|
+
source_root File.expand_path("templates", __dir__)
|
16
|
+
|
17
|
+
def add_github_omniauth_gem
|
18
|
+
say "Adding GitHub OmniAuth gem", :green
|
19
|
+
Bundler.with_unbundled_env do
|
20
|
+
run "bundle add omniauth-google-oauth2"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def invoke_common_generator_methods
|
25
|
+
@oauth_name = :google_oauth2
|
26
|
+
add_provider_and_uuid_user_details
|
27
|
+
configure_devise_omniauth
|
28
|
+
add_omniauth_callback_routes
|
29
|
+
add_omniauth_callback_controller
|
30
|
+
configure_and_add_devise_setting_in_user_model
|
31
|
+
show_readme
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
===============================================================================
|
2
|
+
|
3
|
+
Some setup you must do manually if you haven't yet:
|
4
|
+
|
5
|
+
1. Ensure you have overridden or uncommented the routes for generated omniauth callback controllers in your routes.rb.
|
6
|
+
For example:
|
7
|
+
|
8
|
+
Rails.application.routes.draw do
|
9
|
+
devise_for :users, controllers: {
|
10
|
+
omniauth_callbacks: "users/omniauth_callbacks"
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
2. Update the devise google omniauth APP_ID and APP_SECRET in "config/initializers/devise.rb"
|
15
|
+
after registering the Rails application on: https://code.google.com/apis/console/
|
16
|
+
For example:
|
17
|
+
|
18
|
+
config.omniauth :google_auth, "APP_ID", "APP_SECRET"
|
19
|
+
|
20
|
+
3. Your omniauth callback URL will be: `<host>/users/auth/google_oauth2/callback`. Please update
|
21
|
+
callback URL in Google after registering your omniauth application.
|
22
|
+
|
23
|
+
===============================================================================
|