Add ordercloud logout

This commit is contained in:
Adam Clason 2023-01-22 13:36:33 -06:00
parent dc3a981dc0
commit b18973dfb3
3 changed files with 46 additions and 1 deletions

View File

@ -9,15 +9,17 @@ import customer from './customer'
import customerCard from './customer/card'
import customerAddress from './customer/address'
import signup from './signup'
import logout from './logout'
const endpoints = {
cart,
checkout,
logout: logout,
signup: signup,
customer: customer,
'customer/card': customerCard,
'customer/address': customerAddress,
'catalog/products': products,
signup: signup,
}
export default function ordercloudAPI(commerce: OrdercloudAPI) {

View File

@ -0,0 +1,18 @@
import { GetAPISchema, createEndpoint } from '@vercel/commerce/api'
import logoutEndpoint from '@vercel/commerce/api/endpoints/logout'
import type { LogoutSchema } from '@vercel/commerce/types/logout'
import type { OrdercloudAPI } from '../..'
import logout from './logout'
export type LogoutAPI = GetAPISchema<OrdercloudAPI, LogoutSchema>
export type LogoutEndpoint = LogoutAPI['endpoint']
export const handlers: LogoutEndpoint['handlers'] = { logout }
const logoutApi = createEndpoint<LogoutAPI>({
handler: logoutEndpoint,
handlers,
})
export default logoutApi

View File

@ -0,0 +1,25 @@
import { serialize } from 'cookie'
import type { LogoutEndpoint } from '.'
const logout: LogoutEndpoint['handlers']['logout'] = async ({
body: { redirectTo },
config,
}) => {
const headers = {
'Set-Cookie': serialize(config.tokenCookie, '', {
maxAge: -1,
path: '/',
}),
}
return redirectTo
? {
redirectTo,
headers,
}
: {
headers,
}
}
export default logout