ash_authentication
▼
Project version
v4.5.5
v4.5.4
v4.5.3
v4.5.2
v4.5.1
v4.5.0
v4.4.9
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.12
v4.3.11
v4.3.10
v4.3.9
v4.3.8
v4.3.7
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.0
v4.0.4
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v4.0.0-rc.6
v4.0.0-rc.5
v4.0.0-rc.3
v4.0.0-rc.2
v4.0.0-rc.1
v4.0.0-rc.0
v3.12.4
v3.12.3
v3.12.2
v3.12.1
v3.12.0
v3.11.16
v3.11.15
v3.11.14
v3.11.13
v3.11.12
v3.11.11
v3.11.10
v3.11.9
v3.11.8
v3.11.7
v3.11.6
v3.11.5
v3.11.4
v3.11.3
v3.11.2
v3.11.1
v3.11.0
v3.10.8
v3.10.7
v3.10.6
v3.10.5
v3.10.4
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.9.6
v3.9.5
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.8.0
v3.7.9
v3.7.8
v3.7.6
v3.7.5
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.1
v3.6.0
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.3.1
v3.3.0
v3.2.2
v3.2.1
v3.2.0
v3.1.0
v3.0.3
Go to latest
GUIDES
Modules
Mix
Tasks
API Reference
Modules
Mix Tasks
README
About the Documentation
Tutorials
Topics
Tutorials
Reference
Related packages
Change Log
v4.4.9 (2025-02-11)
v4.4.8 (2025-02-04)
v4.4.7 (2025-02-02)
v4.4.6 (2025-02-01)
v4.4.5 (2025-01-27)
v4.4.4 (2025-01-23)
v4.4.3 (2025-01-23)
v4.4.2 (2025-01-22)
v4.4.1 (2025-01-16)
v4.4.0 (2025-01-16)
v4.3.12 (2025-01-14)
v4.3.11 (2025-01-13)
v4.3.10 (2025-01-02)
v4.3.9 (2024-12-31)
v4.3.8 (2024-12-31)
v4.3.7 (2024-12-26)
v4.3.6 (2024-12-20)
v4.3.5 (2024-12-12)
v4.3.4 (2024-12-02)
v4.3.3 (2024-11-14)
v4.3.2 (2024-11-13)
v4.3.1 (2024-11-12)
v4.3.0 (2024-11-05)
v4.2.7 (2024-11-01)
v4.2.6 (2024-10-31)
v4.2.5 (2024-10-23)
v4.2.4 (2024-10-23)
v4.2.3 (2024-10-19)
v4.2.2 (2024-10-15)
v4.2.1 (2024-10-14)
v4.2.0 (2024-10-07)
v4.1.0 (2024-10-06)
v4.0.4 (2024-09-01)
v4.0.3 (2024-08-22)
v4.0.2 (2024-08-05)
v4.0.1 (2024-06-11)
4.0.0 (2024-05-10)
v4.0.0-rc.7 (2024-05-10)
v4.0.0-rc.6 (2024-04-11)
v4.0.0-rc.5 (2024-04-10)
v4.0.0-rc.4 (2024-04-09)
v4.0.0-rc.3 (2024-04-08)
v4.0.0-rc.2 (2024-04-02)
v4.0.0-rc.1 (2024-04-01)
v4.0.0-rc.0 (2024-03-28)
v3.12.4 (2024-03-11)
v3.12.3 (2024-02-20)
v3.12.2 (2024-01-30)
v3.12.1 (2024-01-25)
v3.12.0 (2023-11-21)
v3.11.16 (2023-10-25)
v3.11.15 (2023-09-22)
v3.11.14 (2023-09-22)
v3.11.13 (2023-09-22)
v3.11.12 (2023-09-21)
v3.11.11 (2023-09-21)
v3.11.10 (2023-09-18)
v3.11.9 (2023-09-17)
v3.11.8 (2023-08-16)
v3.11.7 (2023-07-14)
v3.11.6 (2023-06-23)
v3.11.5 (2023-06-18)
v3.11.4 (2023-06-15)
v3.11.3 (2023-05-31)
v3.11.2 (2023-05-28)
v3.11.1 (2023-05-04)
v3.11.0 (2023-05-04)
v3.10.8 (2023-04-28)
v3.10.7 (2023-04-28)
v3.10.6 (2023-04-09)
v3.10.5 (2023-04-06)
v3.10.4 (2023-04-03)
v3.10.3 (2023-04-03)
v3.10.2 (2023-03-06)
v3.10.1 (2023-03-06)
v3.10.0 (2023-03-04)
v3.9.6 (2023-03-01)
v3.9.5 (2023-02-23)
v3.9.4 (2023-02-22)
v3.9.3 (2023-02-19)
v3.9.2 (2023-02-12)
v3.9.1 (2023-02-12)
v3.9.0 (2023-02-09)
v3.8.0 (2023-02-09)
v3.7.9 (2023-02-09)
v3.7.8 (2023-02-08)
v3.7.7 (2023-02-06)
v3.7.6 (2023-01-30)
v3.7.5 (2023-01-30)
v3.7.4 (2023-01-30)
v3.7.3 (2023-01-18)
v3.7.2 (2023-01-18)
v3.7.1 (2023-01-18)
v3.7.0 (2023-01-18)
v3.6.1 (2023-01-15)
v3.6.0 (2023-01-13)
v3.5.3 (2023-01-13)
v3.5.2 (2023-01-12)
v3.5.1 (2023-01-12)
v3.5.0 (2023-01-12)
v3.4.2 (2023-01-12)
v3.4.1 (2023-01-12)
v3.4.0 (2023-01-11)
v3.3.1 (2023-01-09)
v3.3.0 (2023-01-09)
v3.2.2 (2023-01-08)
v3.2.1 (2022-12-16)
v3.2.0 (2022-12-16)
v3.1.0 (2022-12-14)
v3.0.4 (2022-12-08)
v3.0.3 (2022-12-07)
v3.0.2 (2022-12-05)
v3.0.1 (2022-12-05)
v3.0.0 (2022-12-04)
v2.0.1 (2022-11-24)
v2.0.0 (2022-11-22)
v1.0.0 (2022-11-15)
v0.6.1 (2022-11-15)
v0.6.0 (2022-11-10)
v0.5.0 (2022-11-04)
v0.4.3 (2022-11-03)
v0.4.2 (2022-11-03)
v0.4.1 (2022-11-03)
v0.4.0 (2022-11-02)
v0.3.0 (2022-10-31)
v0.2.1 (2022-10-26)
v0.2.0 (2022-10-24)
v0.1.0 (2022-09-27)
Start Here
Get started with Ash Authentication
Choose your strategies and add-ons
Set up your Phoenix or Plug application
Summary
Tutorials
Auth0 Tutorial
Confirmation Tutorial
Important security notes
Tutorial
Confirming newly registered users
Blocking unconfirmed users from logging in
Confirming changes to monitored fields
Customising the confirmation action
GitHub Tutorial
Google Tutorial
Magic Links Tutorial
With a mix task
Add the Magic Link Strategy to the User resource
Create an email sender and email template
Password Authentication
With a mix task
Add Bcrypt To your dependencies
Add Attributes
Add the password strategy
Slack Tutorial
Topics
Defining Custom Authentication Strategies
DSL setup
Implementing the AshAuthentication.Strategy protocol
Bonus round - transformers and verifiers
Summary
Policies on Authenticated Resources
Testing
When using the Password strategy
Tokens
Token Lifetime
Requiring Token Storage
Sign in Tokens
Upgrading
Upgrading to version 4.0.0
Upgrading to version 3.6.0.
Reference
AshAuthentication
Usage
Authentication Strategies
Add-ons
Supervisor
authentication
AshAuthentication.AddOn.Confirmation
Example
Attributes
Actions
Plugs
AshAuthentication.Strategy.Apple
More documentation:
AshAuthentication.Strategy.Auth0
More documentation:
AshAuthentication.Strategy.Github
More documentation:
AshAuthentication.Strategy.Google
More documentation:
AshAuthentication.Strategy.MagicLink
Tenancy
Actions
Plugs
AshAuthentication.Strategy.OAuth2
Secrets and runtime configuration
User identities
Actions
Plugs
AshAuthentication.Strategy.Oidc
Nonce
More documentation:
AshAuthentication.Strategy.Password
Actions
Plugs
Testing
AshAuthentication.Strategy.Slack
More documentation:
AshAuthentication.TokenResource
Storage
Usage
Removing expired records
token
AshAuthentication.UserIdentity
Storage
Usage
user_identity
Extensions
AshAuthentication
Sections
Usage
Authentication Strategies
Add-ons
Supervisor
Summary
Types
resource_config/0
subject/0
Functions
authenticated_resources/1
authentication/1
do_subject_to_user/3
subject_to_user/3
user_to_subject/1
AshAuthentication.TokenResource
Sections
Storage
Usage
Removing expired records
Summary
Functions
expunge_expired/2
jti_revoked?/3
revoke/3
token/1
token_revoked?/3
AshAuthentication.UserIdentity
Sections
Storage
Usage
Summary
Functions
user_identity/1
Strategies
AshAuthentication.AddOn.Confirmation
Sections
Example
Attributes
Actions
Plugs
Summary
Types
t/0
Functions
confirmation_token/3
transform/2
verify/2
AshAuthentication.Strategy
Summary
Types
action/0
http_method/0
path/0
phase/0
route/0
t/0
Functions
action/4
actions/1
method_for_phase/2
name/1
phases/1
plug/3
routes/1
tokens_required?/1
AshAuthentication.Strategy.Apple
Sections
More documentation:
Summary
Functions
transform/2
verify/2
AshAuthentication.Strategy.Auth0
Sections
More documentation:
Summary
Functions
transform/2
verify/2
AshAuthentication.Strategy.Custom
Summary
Types
entity/0
strategy/0
Callbacks
transform/2
verify/2
Functions
set_defaults/2
AshAuthentication.Strategy.Github
Sections
More documentation:
Summary
Functions
transform/2
verify/2
AshAuthentication.Strategy.Google
Sections
More documentation:
Summary
Functions
transform/2
verify/2
AshAuthentication.Strategy.MagicLink
Sections
Tenancy
Actions
Plugs
Summary
Types
t/0
Functions
request_token_for/2
request_token_for_identity/2
transform/2
verify/2
AshAuthentication.Strategy.OAuth2
Sections
Secrets and runtime configuration
User identities
Actions
Plugs
Summary
Types
secret/0
secret_keyword/0
secret_list/0
t/0
Functions
transform/2
verify/2
AshAuthentication.Strategy.Oidc
Sections
Nonce
More documentation:
Summary
Functions
transform/2
verify/2
AshAuthentication.Strategy.Password
Sections
Actions
Plugs
Testing
Summary
Types
t/0
Functions
reset_token_for/2
transform/2
verify/2
AshAuthentication.Strategy.Slack
Sections
More documentation:
Summary
Functions
transform/2
verify/2
Cryptography
AshAuthentication.BcryptProvider
Summary
Functions
hash/1
simulate/0
valid?/2
AshAuthentication.HashProvider
Summary
Callbacks
hash/1
simulate/0
valid?/2
AshAuthentication.Jwt
Sections
Configuration
Summary
Types
claims/0
token/0
Functions
default_algorithm/0
default_lifetime_hrs/0
peek/1
supported_algorithms/0
token_for_resource/3
token_for_user/3
token_to_resource/2
verify/2
Introspection
AshAuthentication.Info
Summary
Types
dsl_or_resource/0
Functions
authentication_add_ons/1
authentication_domain/1
authentication_domain!/1
authentication_get_by_subject_action_name/1
authentication_get_by_subject_action_name!/1
authentication_options/1
authentication_select_for_senders/1
authentication_select_for_senders!/1
authentication_strategies/1
authentication_subject_name/1
authentication_subject_name!/1
authentication_tokens_enabled?/1
authentication_tokens_options/1
authentication_tokens_require_token_presence_for_authentication?/1
authentication_tokens_signing_algorithm/1
authentication_tokens_signing_algorithm!/1
authentication_tokens_signing_secret/1
authentication_tokens_signing_secret!/1
authentication_tokens_store_all_tokens?/1
authentication_tokens_token_lifetime/1
authentication_tokens_token_lifetime!/1
authentication_tokens_token_resource/1
authentication_tokens_token_resource!/1
domain/1
domain!/1
find_strategy/3
strategy/2
strategy!/2
strategy_for_action/2
strategy_for_action!/2
AshAuthentication.TokenResource.Info
Summary
Functions
token_confirmation_get_changes_action_name/1
token_confirmation_get_changes_action_name!/1
token_confirmation_options/1
token_confirmation_store_changes_action_name/1
token_confirmation_store_changes_action_name!/1
token_domain/1
token_domain!/1
token_expunge_expired_action_name/1
token_expunge_expired_action_name!/1
token_expunge_interval/1
token_expunge_interval!/1
token_get_token_action_name/1
token_get_token_action_name!/1
token_options/1
token_read_expired_action_name/1
token_read_expired_action_name!/1
token_revocation_is_revoked_action_name/1
token_revocation_is_revoked_action_name!/1
token_revocation_options/1
token_revocation_revoke_token_action_name/1
token_revocation_revoke_token_action_name!/1
token_store_token_action_name/1
token_store_token_action_name!/1
AshAuthentication.UserIdentity.Info
Summary
Functions
user_identity_access_token_attribute_name/1
user_identity_access_token_attribute_name!/1
user_identity_access_token_expires_at_attribute_name/1
user_identity_access_token_expires_at_attribute_name!/1
user_identity_destroy_action_name/1
user_identity_destroy_action_name!/1
user_identity_domain/1
user_identity_domain!/1
user_identity_options/1
user_identity_read_action_name/1
user_identity_read_action_name!/1
user_identity_refresh_token_attribute_name/1
user_identity_refresh_token_attribute_name!/1
user_identity_strategy_attribute_name/1
user_identity_strategy_attribute_name!/1
user_identity_uid_attribute_name/1
user_identity_uid_attribute_name!/1
user_identity_upsert_action_name/1
user_identity_upsert_action_name!/1
user_identity_user_id_attribute_name/1
user_identity_user_id_attribute_name!/1
user_identity_user_relationship_name/1
user_identity_user_relationship_name!/1
user_identity_user_resource/1
user_identity_user_resource!/1
Utilities
AshAuthentication.Debug
Summary
Functions
enabled?/0
AshAuthentication.Secret
Sections
Example
Secret name
Summary
Callbacks
secret_for/3
AshAuthentication.Sender
Sections
Example
Summary
Callbacks
send/3
AshAuthentication.Supervisor
Sections
Example
Summary
Functions
child_spec/1
Plugs
AshAuthentication.Plug
Summary
Types
activity/0
token/0
Callbacks
handle_failure/3
handle_success/4
AshAuthentication.Plug.Helpers
Summary
Functions
get_authentication_result/1
load_subjects/3
retrieve_from_bearer/3
retrieve_from_session/3
revoke_bearer_tokens/2
set_actor/2
store_authentication_result/2
store_in_session/2
Reusable Components
AshAuthentication.Checks.AshAuthenticationInteraction
Summary
Functions
eager_evaluate?/0
prefer_expanded_description?/0
requires_original_data?/2
strict_check/3
type/0
AshAuthentication.GenerateTokenChange
AshAuthentication.Strategy.Password.HashPasswordChange
AshAuthentication.Strategy.Password.PasswordConfirmationValidation
Summary
Functions
validate/3
AshAuthentication.Strategy.Password.PasswordValidation
Sections
Options:
Examples
AshAuthentication.Validations
Summary
Functions
find_attribute/2
maybe_build_attribute/3
persisted_option/2
validate_behaviour/2
validate_extension/2
validate_field_in_values/3
validate_field_with/4
validate_secret/3
validate_token_generation_enabled/2
AshAuthentication.Validations.Action
Summary
Functions
validate_action_argument_option/4
validate_action_exists/2
validate_action_has_argument/2
validate_action_has_change/2
validate_action_has_manual/2
validate_action_has_preparation/2
validate_action_has_validation/2
validate_action_option/3
AshAuthentication.Validations.Attribute
Summary
Functions
validate_attribute_option/4
validate_attribute_unique_constraint/3
Errors
AshAuthentication.Errors.AuthenticationFailed
Summary
Types
t/0
Functions
exception/0
AshAuthentication.Errors.CannotConfirmUnconfirmedUser
Summary
Functions
exception/0
AshAuthentication.Errors.InvalidToken
Summary
Functions
exception/0
AshAuthentication.Errors.MissingSecret
Summary
Functions
exception/0
AshAuthentication.Errors.UnconfirmedUser
Summary
Functions
exception/0
Internals
AshAuthentication.AddOn.Confirmation.Actions
Summary
Functions
confirm/3
get_changes/3
store_changes/4
AshAuthentication.AddOn.Confirmation.ConfirmChange
AshAuthentication.AddOn.Confirmation.ConfirmationHookChange
AshAuthentication.AddOn.Confirmation.Dsl
AshAuthentication.AddOn.Confirmation.Plug
Summary
Functions
confirm/2
AshAuthentication.AddOn.Confirmation.Transformer
AshAuthentication.AddOn.Confirmation.Verifier
AshAuthentication.Igniter
Summary
Functions
add_add_on/3
add_new_add_on/5
add_new_strategy/5
add_secret_from_env/5
add_strategy/3
defines_add_on/4
defines_strategy/4
AshAuthentication.Jwt.Config
Summary
Functions
default_claims/2
generate_audience/1
generate_issuer/1
token_signer/2
validate_audience/4
validate_issuer/3
validate_jti/4
AshAuthentication.Plug.Defaults
Summary
Functions
handle_failure/3
handle_success/4
AshAuthentication.Plug.Dispatcher
Summary
Types
config/0
Functions
call/2
AshAuthentication.Plug.Macros
Summary
Functions
define_load_from_bearer/1
define_load_from_session/1
define_revoke_bearer_tokens/1
validate_subject_name_uniqueness/1
AshAuthentication.Plug.Router
AshAuthentication.Preparations.FilterBySubject
Summary
Functions
init/1
AshAuthentication.SecretFunction
AshAuthentication.SenderFunction
AshAuthentication.Strategy.Apple.Verifier
AshAuthentication.Strategy.Custom.Helpers
Summary
Functions
put_add_on/2
put_strategy/2
register_strategy_actions/3
AshAuthentication.Strategy.Custom.Transformer
Summary
Functions
after_compile?/0
AshAuthentication.Strategy.Custom.Verifier
AshAuthentication.Strategy.MagicLink.Actions
Summary
Functions
request/3
sign_in/3
AshAuthentication.Strategy.MagicLink.Plug
Summary
Functions
request/2
sign_in/2
AshAuthentication.Strategy.MagicLink.Request
AshAuthentication.Strategy.MagicLink.RequestPreparation
Summary
Functions
init/1
AshAuthentication.Strategy.MagicLink.SignInChange
AshAuthentication.Strategy.MagicLink.SignInPreparation
Summary
Functions
init/1
AshAuthentication.Strategy.MagicLink.Transformer
AshAuthentication.Strategy.MagicLink.Verifier
AshAuthentication.Strategy.OAuth2.Actions
Summary
Functions
register/3
sign_in/3
AshAuthentication.Strategy.OAuth2.Dsl
AshAuthentication.Strategy.OAuth2.IdentityChange
AshAuthentication.Strategy.OAuth2.Plug
Summary
Functions
callback/2
request/2
AshAuthentication.Strategy.OAuth2.SignInPreparation
Summary
Functions
init/1
AshAuthentication.Strategy.OAuth2.Transformer
AshAuthentication.Strategy.OAuth2.Verifier
AshAuthentication.Strategy.Oidc.NonceGenerator
AshAuthentication.Strategy.Oidc.Transformer
AshAuthentication.Strategy.Oidc.Verifier
AshAuthentication.Strategy.Password.Actions
Summary
Functions
register/3
reset/3
reset_request/3
sign_in/3
sign_in_with_token/3
AshAuthentication.Strategy.Password.Dsl
AshAuthentication.Strategy.Password.Plug
Summary
Functions
register/2
reset/2
reset_request/2
sign_in/2
sign_in_with_token/2
AshAuthentication.Strategy.Password.RequestPasswordReset
AshAuthentication.Strategy.Password.RequestPasswordResetPreparation
Summary
Functions
init/1
AshAuthentication.Strategy.Password.ResetTokenValidation
AshAuthentication.Strategy.Password.Resettable
Summary
Types
t/0
AshAuthentication.Strategy.Password.SignInPreparation
Summary
Functions
init/1
user_confirmed_if_needed/2
AshAuthentication.Strategy.Password.SignInWithTokenPreparation
Summary
Functions
init/1
AshAuthentication.Strategy.Password.Transformer
AshAuthentication.Strategy.Password.Verifier
AshAuthentication.Strategy.Slack.Verifier
AshAuthentication.TokenResource.Actions
Summary
Functions
expunge_expired/2
get_token/3
jti_revoked?/3
revoke/3
store_token/3
token_revoked?/3
AshAuthentication.TokenResource.Expunger
Summary
Functions
child_spec/1
AshAuthentication.TokenResource.GetConfirmationChangesPreparation
Summary
Functions
init/1
AshAuthentication.TokenResource.GetTokenPreparation
Summary
Functions
init/1
AshAuthentication.TokenResource.IsRevoked
AshAuthentication.TokenResource.IsRevokedPreparation
Summary
Functions
init/1
AshAuthentication.TokenResource.RevokeTokenChange
AshAuthentication.TokenResource.StoreConfirmationChangesChange
AshAuthentication.TokenResource.StoreTokenChange
AshAuthentication.TokenResource.Transformer
Summary
Functions
after_compile?/0
AshAuthentication.TokenResource.Verifier
AshAuthentication.Transformer
Summary
Functions
after_compile?/0
AshAuthentication.Transformer.SetSelectForSenders
Summary
Functions
after_compile?/0
before?/1
AshAuthentication.UserIdentity.Actions
Summary
Functions
upsert/2
AshAuthentication.UserIdentity.Transformer
Summary
Functions
after_compile?/0
AshAuthentication.UserIdentity.UpsertIdentityChange
AshAuthentication.UserIdentity.Verifier
AshAuthentication.Verifier
Internals
mix ash_authentication.add_strategy
Sections
Example
Options
Summary
Functions
igniter/2
mix ash_authentication.install
Sections
Example
Options
Summary
Functions
data_layer_args/2
setup_data_layer/2
Search documentation of ash_authentication
Settings
AshAuthentication.Strategy.OAuth2.IdentityChange
(ash_authentication v4.4.9)
View Source
Updates the identity resource when a user is registered.