This PR includes some changes on Auth error system, I tried my best to keep it compatible and without breaking changes.
If you see anything that could be a breaking change, please let me know.
What is the new behavior?
Error codes
Introduce ErrorCode type as a raw representable string, added static properties for each of the known error codes. Since error codes are raw representable strings, if an unknown error code is returned, decoding is going to work fine.
Deprecated errors
missingExpClaim error deprecated, it is never thrown now, but I kept it for retro-compatibility
malformedJWT error deprecated, it is never thrown now, but I kept it for retro-compatibility
sessionNotFound error deprecated, use sessionMissing instead
pkce(_:) error deprecated, use pkceGrantCodeExchange instead
invalidImplicitGrantFlowURL error deprecated, use implicitGrantRedirect instead
missingURL error deprecated, it is never thrown, but I kept it for retro-compatibility
api(_:) error deprecated, use api(message:errorCode:underlyingData:underlyingResponse:) instead
Added errors
sessionMissing thrown when a session is required to proceed, but none was found, either thrown by the client, or returned by the server.
weakPassword thrown when password is deemed weak, check associated reasons to know why.
api(message:errorCode:underlyingData:underlyingResponse:) thrown by API when an error occurs, check errorCode to know more, or use underlyingData or underlyingResponse for access to the response which originated this error.
pkceGrantCodeExchange thrown when an error happens during PKCE grant flow.
implicitGrantRedirect thrown when an error happens during implicit grant flow.
What kind of change does this PR introduce?
This PR includes some changes on Auth error system, I tried my best to keep it compatible and without breaking changes.
If you see anything that could be a breaking change, please let me know.
What is the new behavior?
Error codes
Introduce
ErrorCode
type as a raw representable string, added static properties for each of the known error codes. Since error codes are raw representable strings, if an unknown error code is returned, decoding is going to work fine.Deprecated errors
missingExpClaim
error deprecated, it is never thrown now, but I kept it for retro-compatibilitymalformedJWT
error deprecated, it is never thrown now, but I kept it for retro-compatibilitysessionNotFound
error deprecated, usesessionMissing
insteadpkce(_:)
error deprecated, usepkceGrantCodeExchange
insteadinvalidImplicitGrantFlowURL
error deprecated, useimplicitGrantRedirect
insteadmissingURL
error deprecated, it is never thrown, but I kept it for retro-compatibilityapi(_:)
error deprecated, useapi(message:errorCode:underlyingData:underlyingResponse:)
insteadAdded errors
sessionMissing
thrown when a session is required to proceed, but none was found, either thrown by the client, or returned by the server.weakPassword
thrown when password is deemed weak, check associated reasons to know why.api(message:errorCode:underlyingData:underlyingResponse:)
thrown by API when an error occurs, checkerrorCode
to know more, or useunderlyingData
orunderlyingResponse
for access to the response which originated this error.pkceGrantCodeExchange
thrown when an error happens during PKCE grant flow.implicitGrantRedirect
thrown when an error happens during implicit grant flow.