Packages
ash_authentication
4.7.1
5.0.0-rc.12
5.0.0-rc.11
5.0.0-rc.10
5.0.0-rc.9
5.0.0-rc.8
5.0.0-rc.7
5.0.0-rc.6
5.0.0-rc.5
5.0.0-rc.4
5.0.0-rc.3
5.0.0-rc.2
5.0.0-rc.1
5.0.0-rc.0
4.14.1
4.14.0
4.13.7
4.13.6
4.13.5
4.13.4
4.13.3
4.13.2
retired
4.13.1
retired
4.13.0
4.12.0
4.11.0
4.10.0
4.9.9
4.9.8
4.9.7
4.9.6
4.9.5
4.9.4
4.9.3
4.9.2
4.9.1
4.9.0
4.8.7
4.8.6
4.8.5
4.8.3
4.8.2
4.8.1
4.8.0
4.7.6
4.7.5
4.7.4
4.7.3
4.7.2
4.7.1
4.7.0
4.6.4
4.6.3
4.6.2
4.6.1
4.6.0
4.5.6
4.5.5
4.5.4
4.5.3
4.5.2
4.5.1
4.5.0
4.4.9
4.4.8
4.4.7
4.4.6
4.4.5
4.4.4
4.4.3
4.4.2
4.4.1
4.4.0
4.3.12
4.3.11
4.3.10
4.3.9
4.3.8
4.3.7
4.3.6
4.3.5
4.3.4
4.3.3
4.3.2
4.3.1
4.3.0
4.2.7
4.2.6
4.2.5
4.2.4
4.2.3
4.2.2
4.2.1
4.2.0
4.1.0
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
4.0.0-rc.6
4.0.0-rc.5
4.0.0-rc.3
4.0.0-rc.2
4.0.0-rc.1
4.0.0-rc.0
3.12.4
3.12.3
3.12.2
3.12.1
3.12.0
3.11.16
3.11.15
3.11.14
3.11.13
3.11.12
3.11.11
3.11.10
3.11.9
3.11.8
3.11.7
3.11.6
3.11.5
3.11.4
3.11.3
3.11.2
3.11.1
3.11.0
3.10.8
3.10.7
3.10.6
3.10.5
3.10.4
3.10.3
3.10.2
3.10.1
3.10.0
3.9.6
3.9.5
3.9.4
3.9.3
3.9.2
3.9.1
3.9.0
3.8.0
3.7.9
3.7.8
3.7.6
3.7.5
3.7.4
3.7.3
3.7.2
3.7.1
3.7.0
3.6.1
3.6.0
3.5.3
3.5.2
3.5.1
3.5.0
3.3.1
3.3.0
3.2.2
3.2.1
3.2.0
3.1.0
3.0.3
Authentication extension for the Ash Framework.
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
documentation/dsls/DSL-AshAuthentication.AddOn.LogOutEverywhere.md
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# AshAuthentication.AddOn.LogOutEverywhere
Log out everywhere support.
Sometimes it's necessary to be able to invalidate all of a user's sessions
with a single action. This add-on provides this functionality.
In order to use this feature the following features must be enabled:
1. Tokens must be enabled.
2. The `authentication.tokens.store_all_tokens?` option is enabled.
3. The `authentication.tokens.require_token_presence_for_authentication?`
option is enabled.
4. For the `apply_on_password_change?` option, at least one password strategy
must be enabled.
## Example
```elixir
defmodule MyApp.Accounts.User do
use Ash.Resource,
extensions: [AshAuthentication],
domain: MyApp.Accounts
authentication do
tokens do
enabled? true
store_all_tokens? true
require_token_presence_for_authentication? true
end
add_ons do
log_out_everywhere do
apply_on_password_change? true
end
end
```
## Actions
By default the add-on will add a `log_out_everywhere` action which reverts all
the existing non-expired tokens for the user in question.
### Example
iex> strategy = Info.strategy!(Example.User, :log_out_everywhere)
...> {:ok, user} = Strategy.action(strategy, :log_out_everywhere, %{"user_id" => user_id()})
...> user.id == user_id()
true
### authentication.add_ons.log_out_everywhere
```elixir
log_out_everywhere name \\ :log_out_everywhere
```
Log out everywhere add-on
### Arguments
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`name`](#authentication-add_ons-log_out_everywhere-name){: #authentication-add_ons-log_out_everywhere-name .spark-required} | `atom` | | Uniquely identifies the add-on |
### Options
| Name | Type | Default | Docs |
|------|------|---------|------|
| [`action_name`](#authentication-add_ons-log_out_everywhere-action_name){: #authentication-add_ons-log_out_everywhere-action_name } | `atom` | `:log_out_everywhere` | The name of the action to generate. |
| [`argument_name`](#authentication-add_ons-log_out_everywhere-argument_name){: #authentication-add_ons-log_out_everywhere-argument_name } | `atom` | `:user` | The name of the user argument to the `:log_out_everywhere` action. |
| [`include_purposes`](#authentication-add_ons-log_out_everywhere-include_purposes){: #authentication-add_ons-log_out_everywhere-include_purposes } | `list(String.t)` | | Limit the list of token purposes for which tokens will be revoked to those in this list, except those in `exclude_token_purposes`. |
| [`exclude_purposes`](#authentication-add_ons-log_out_everywhere-exclude_purposes){: #authentication-add_ons-log_out_everywhere-exclude_purposes } | `list(String.t)` | `["revocation"]` | Don't revoke tokens with these purposes when logging a user out everywhere. |
| [`apply_on_password_change?`](#authentication-add_ons-log_out_everywhere-apply_on_password_change?){: #authentication-add_ons-log_out_everywhere-apply_on_password_change? } | `boolean` | `false` | Automatically log out all active sessions whenever a password is changed. |
### Introspection
Target: `AshAuthentication.AddOn.LogOutEverywhere`
<style type="text/css">.spark-required::after { content: "*"; color: red !important; }</style>