# `MishkaCmsCore.Accounts.ProviderStrategy.Plug`
[🔗](https://github.com/mishka-group/mishka_cms_core/blob/v0.0.1/lib/mishka_cms_core/accounts/provider_strategy/plug.ex#L5)

Both phases of a provider's sign-in: the provider the request path names — kept in the session for
the callback, which every provider shares — is looked up among the `"auth:providers"` plugins, refused unless the site the request reached offers it, and filled
into the strategy — its Assent strategy, Assent's own defaults for it, what the plugin overrides,
the site's keys and the callback on the site's address — before AshAuthentication's
`OAuth2.Plug` runs the phase.

# `callback`

```elixir
@spec callback(Plug.Conn.t(), MishkaCmsCore.Accounts.ProviderStrategy.t()) ::
  Plug.Conn.t()
```

Ends it, where the provider sent the visitor back: with the provider it started with.

# `request`

```elixir
@spec request(Plug.Conn.t(), MishkaCmsCore.Accounts.ProviderStrategy.t()) ::
  Plug.Conn.t()
```

Starts a sign-in with the provider in the path, and keeps which one in the session.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
