v0.4.0 (2026-11-07)
Now requires Elixir 1.18 / OTP 26.
Breaking changes
Assent.HTTPAdapter.FinchremovedJSONis now the default JSON libraryAssent.Strategy.Instagramremoved because the Instagram Basic Display API has been discontinued- Exceptions and
Assent.HTTPAdapter.HTTPResponsenow omit potentially sensitive fields from their defaultInspectoutput Assent.Strategy.OIDCnow requires:userinfo_signed_response_algfor signed UserInfo responses- The following exceptions have been renamed:
Assent.CallbackErrortoAssent.Strategy.CallbackError, now with:paramsfield instead of:errorand:error_uriAssent.CallbackCSRFErrortoAssent.Strategy.CallbackCSRFErrorAssent.CastClaimsErrortoAssent.Strategy.CastErrorAssent.RequestErrortoAssent.HTTPAdapter.RequestErrorAssent.InvalidResponseErrortoAssent.HTTPAdapter.InvalidResponseErrorAssent.UnexpectedResponseErrortoAssent.HTTPAdapter.UnexpectedResponseErrorAssent.ServerUnreachableErrortoAssent.HTTPAdapter.ServerUnreachableError
- Strategies now return exceptions instead of error strings:
Assent.MissingParamErrorfor missing parameters andArgumentErrorfor configuration errors Assent.Strategy.OAuth2now returnsAssent.Strategy.OAuth2.UnsupportedTokenTypeErrorfor unsupported token typesAssent.Strategy.OIDCnow returns:Assent.Strategy.OIDC.InvalidOpenIDConfigurationErrorfor invalid provider configurationAssent.Strategy.OIDC.InvalidIDTokenErrorfor invalid ID TokensAssent.Strategy.OIDC.InvalidUserInfoErrorfor invalid UserInfo responses
Assent.Strategy.Telegramnow returnsArgumentErrorfor an invalid:authorization_channelAssent.HTTPAdapter.HTTPResponsereplaces its:request_urlfield with a:requestfield containing anAssent.HTTPAdapter.HTTPRequeststructAssent.JWTAdapter.AssentJWT.Errorreplaces its:messagefield with structured:action,:part, and:reasonfieldsAssent.HTTPAdapter.Httpcnow verifies SSL certificates with the OS trust store and OTP's built-in hostname verification,:certifiand:ssl_verify_funare no longer usedAssent.HTTPAdapter.Httpcnow raisesArgumentErroron HTTPS requests configured withverify: :verify_noneAssent.HTTPAdapter.HttpcandAssent.HTTPAdapter.Reqno longer follow redirects by default
Changes
:inetsand:sslare now started automatically byAssent, and no longer required in:extra_applicationsAssent.JWTAdapter.AssentJWTnow supports EdDSA algorithmsAssent.JWTAdapter.AssentJWTnow supports EC JWKsAssent.Strategy.OIDCno longer rejects a:client_authentication_methodmissing from the provider'stoken_endpoint_auth_methods_supportedAssent.Strategy.OIDCaccepts additional ID Token issuers via the:trusted_issuersconfig optionAssent.Strategy.OIDCnow validatesissandaudfor signed UserInfo responsesAssent.Strategy.Facebooknow requests the userpicturefield- Strategies now accept a
:prepare_http_requestconfiguration option for rewriting HTTP requests Assent.HTTPAdapter.request/5is deprecated in favor ofAssent.HTTPAdapter.request/2Assent.Strategy.Applenow returnsis_private_email,real_user_status, andorg_idin the user infoAssent.Strategy.cast_claims/2was added to support casting provider-specific claimsAssent.Strategy.OAuth2.grant_access_token/3accepts:jwt_audiencefor JWT client authenticationAssent.Strategy.OAuth2deprecates the:auth_methodconfiguration option in favor of:client_authentication_methodAssent.Strategy.OIDCdeprecates string values for the:client_authentication_methodconfiguration option in favor of atoms
Bug fixes
Assent.Strategy.OAuthno longer lowercases the request path for signature base string, per RFC 5849 3.4.1.2Assent.HTTPAdapter.Reqnow returns the response headers instead of the request headersAssent.Strategy.OIDCnow rejects dynamically fetched OpenID configuration when issuer does not match the issuer URLAssent.Strategy.OAuth2.callback/2now validates thestateparameter before handling error responsesAssent.Strategy.OIDC.authorize_url/1now generates a random nonce when:nonceis set totrueAssent.Strategy.OAuth.authorize_url/1now validatesoauth_callback_confirmedin request token responsesAssent.Strategy.OAuth.callback/2now validates theoauth_tokenparameterAssent.Strategy.Telegram.callback/2now verifieshashbefore verifyingauth_dateAssent.Strategy.OAuth2.grant_access_token/3now encodesclient_secret_basiccredentials asx-www-form-urlencodedAssent.Strategy.OAuth2.grant_access_token/3now uses the token endpoint URL as the defaultaudfor JWT client authenticationAssent.Strategy.OAuth2.grant_access_token/3now includes a uniquejtiin JWT client authenticationAssent.Strategy.Facebooknow uses Graph API v26.0Assent.Strategy.VKnow uses API v5.199 and only requests supported user fieldsAssent.Strategy.VKnow merges:user_url_paramswith the defaultfieldsandvrequest params instead of dropping themAssent.Strategy.Discordnow uses the API v10 endpointsAssent.Strategy.BitbucketandAssent.Strategy.Spotifynow useclient_secret_basicauthenticationAssent.Strategy.LINEnow usesclient_secret_postauthenticationAssent.Strategy.Appleno longer allows unverifiedusercallback parameters to override identity claims
v0.3
The CHANGELOG for v0.3 releases can be found in the v0.2 branch.