- Add
ueberauth
andueberauth_openam
to your list of dependencies inmix.exs
:
def deps do
[
{:ueberauth, "~> 0.2"},
{:ueberauth_openam, "~> 0.1.0"},
]
end
- Ensure
ueberauth_openam
is started before your application:
def application do
[applications: [:ueberauth_openam]]
end
- Configure the OpenAM integration in
config/config.exs
:
config :ueberauth, Ueberauth,
providers: [openam: {Ueberauth.Strategy.OpenAM, [
base_url: "http://websso.example.com/",
sso_cookie: "openAMssoToken",
]}]
- Add the request and callback routes in your router (below are defaults):
get "/:provider", AuthController, :request
get "/:provider/callback", AuthController, :callback
- In your auth controller include the Üeberauth plug and implement the callback routes for success and failure:
defmodule MyApp.AuthController do
use MyApp.Web, :controller
plug Ueberauth
def callback(%{assigns: %{ueberauth_auth: auth}} = conn, _params) do
...
end
def callback(%{assigns: %{ueberauth_failure: _fails}} = conn, _params) do
...
end
end
Issues and Pull Requests are always welcome!