mirror of
https://github.com/nestriness/nestri.git
synced 2026-09-19 17:25:19 +03:00
121 lines
2.5 KiB
TypeScript
121 lines
2.5 KiB
TypeScript
/**
|
|
* A list of errors that can be thrown by OpenAuth.
|
|
*
|
|
* You can use these errors to check the type of error and handle it. For example.
|
|
*
|
|
* ```ts
|
|
* import { InvalidAuthorizationCodeError } from "@openauthjs/openauth/error"
|
|
*
|
|
* if (err instanceof InvalidAuthorizationCodeError) {
|
|
* // handle invalid code error
|
|
* }
|
|
* ```
|
|
*
|
|
* @packageDocumentation
|
|
*/
|
|
|
|
/**
|
|
* The OAuth server returned an error.
|
|
*/
|
|
export class OauthError extends Error {
|
|
constructor(
|
|
public error:
|
|
| 'invalid_request'
|
|
| 'invalid_grant'
|
|
| 'unauthorized_client'
|
|
| 'access_denied'
|
|
| 'unsupported_grant_type'
|
|
| 'server_error'
|
|
| 'temporarily_unavailable',
|
|
public description: string
|
|
) {
|
|
super(error + ' - ' + description);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The `provider` needs to be passed in.
|
|
*/
|
|
export class MissingProviderError extends OauthError {
|
|
constructor() {
|
|
super(
|
|
'invalid_request',
|
|
'Must specify `provider` query parameter if `select` callback on issuer is not specified'
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The given parameter is missing.
|
|
*/
|
|
export class MissingParameterError extends OauthError {
|
|
constructor(public parameter: string) {
|
|
super('invalid_request', 'Missing parameter: ' + parameter);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The given client is not authorized to use the redirect URI that was passed in.
|
|
*/
|
|
export class UnauthorizedClientError extends OauthError {
|
|
constructor(
|
|
public clientID: string,
|
|
redirectURI: string
|
|
) {
|
|
super(
|
|
'unauthorized_client',
|
|
`Client ${clientID} is not authorized to use this redirect_uri: ${redirectURI}`
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The browser was in an unknown state.
|
|
*
|
|
* This can happen when certain cookies have expired. Or the browser was switched in the middle
|
|
* of the authentication flow.
|
|
*/
|
|
export class UnknownStateError extends Error {
|
|
constructor() {
|
|
super(
|
|
'The browser was in an unknown state. This could be because certain cookies expired or the browser was switched in the middle of an authentication flow.'
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The given subject is invalid.
|
|
*/
|
|
export class InvalidSubjectError extends Error {
|
|
constructor() {
|
|
super('Invalid subject');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The given refresh token is invalid.
|
|
*/
|
|
export class InvalidRefreshTokenError extends Error {
|
|
constructor() {
|
|
super('Invalid refresh token');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The given access token is invalid.
|
|
*/
|
|
export class InvalidAccessTokenError extends Error {
|
|
constructor() {
|
|
super('Invalid access token');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The given authorization code is invalid.
|
|
*/
|
|
export class InvalidAuthorizationCodeError extends Error {
|
|
constructor() {
|
|
super('Invalid authorization code');
|
|
}
|
|
}
|