diff --git a/config/config.exs b/config/config.exs index 86dae50..9db882f 100644 --- a/config/config.exs +++ b/config/config.exs @@ -33,5 +33,9 @@ config :ueberauth, Ueberauth, slack: { Ueberauth.Strategy.Slack, [ default_scope: "bot,commands,users:read,team:read" ] + }, + google: { Ueberauth.Strategy.Google, [ + default_scope: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/analytics" + ] } ] diff --git a/config/dev.secret.exs.sample b/config/dev.secret.exs.sample index ebebf65..d7a4448 100644 --- a/config/dev.secret.exs.sample +++ b/config/dev.secret.exs.sample @@ -6,3 +6,7 @@ config :espi_dni, EspiDni.Plugs.RequireSlackToken, config :ueberauth, Ueberauth.Strategy.Slack.OAuth, client_id: "slack-client-id", client_secret: "slack-client-secret" + +config :ueberauth, Ueberauth.Strategy.Google.OAuth, + client_id: "google-client-id", + client_secret: "google-client-secret" diff --git a/web/controllers/auth_controller.ex b/web/controllers/auth_controller.ex index ff44077..4446f17 100644 --- a/web/controllers/auth_controller.ex +++ b/web/controllers/auth_controller.ex @@ -20,7 +20,7 @@ defmodule EspiDni.AuthController do |> redirect(to: "/") end - def callback(%{assigns: %{ueberauth_auth: auth}} = conn, _params) do + def callback(%{assigns: %{ueberauth_auth: auth}} = conn, %{"provider" => "slack"} = _params) do case AuthHandler.init_from_auth(auth) do {:ok, team, user} -> conn @@ -36,6 +36,11 @@ defmodule EspiDni.AuthController do end end + def callback(%{assigns: %{ueberauth_auth: auth}} = conn, %{"provider" => "google"} = _params) do + conn + |> put_flash(:info, "Successfully authenticated with google.") + end + defp start_bot(conn) do team = get_session(conn, :current_team) EspiDni.BotSupervisor.start_bot(team.token)