@shopify/shopify-app-remix
Version:
Shopify Remix - to simplify the building of Shopify Apps with Remix
29 lines (24 loc) • 800 B
text/typescript
import {redirectToBouncePage} from '../admin/helpers/redirect-to-bounce-page';
import {RETRY_INVALID_SESSION_HEADER} from '../const';
import {BasicParams} from '../../types';
interface RespondToInvalidSessionTokenParams {
params: BasicParams;
request: Request;
retryRequest?: boolean;
}
export function respondToInvalidSessionToken({
params,
request,
retryRequest = false,
}: RespondToInvalidSessionTokenParams) {
const {api, logger, config} = params;
const isDocumentRequest = !request.headers.get('authorization');
if (isDocumentRequest) {
return redirectToBouncePage({api, logger, config}, new URL(request.url));
}
throw new Response(undefined, {
status: 401,
statusText: 'Unauthorized',
headers: retryRequest ? RETRY_INVALID_SESSION_HEADER : {},
});
}