mirror of
https://github.com/vercel/commerce.git
synced 2025-05-18 07:26:59 +00:00
25 lines
888 B
TypeScript
25 lines
888 B
TypeScript
import Cookies from 'js-cookie'
|
|
import { getSalesChannelToken } from '@commercelayer/js-auth'
|
|
import { useEffect, useState } from 'react'
|
|
|
|
export default function useToken() {
|
|
const [token, setToken] = useState<string | undefined>('')
|
|
useEffect(() => {
|
|
const cookieToken = Cookies.get('CL_TOKEN')
|
|
const getToken = async () => {
|
|
const credentials = await getSalesChannelToken({
|
|
endpoint: process.env.NEXT_PUBLIC_COMMERCELAYER_ENDPOINT as string,
|
|
clientId: process.env.NEXT_PUBLIC_COMMERCELAYER_CLIENT_ID as string,
|
|
scope: process.env.NEXT_PUBLIC_COMMERCELAYER_MARKET_SCOPE as string,
|
|
})
|
|
Cookies.set('CL_TOKEN', credentials?.accessToken ?? '', {
|
|
expires: credentials?.expires,
|
|
})
|
|
setToken(credentials?.accessToken)
|
|
}
|
|
if (!cookieToken) getToken()
|
|
else setToken(cookieToken)
|
|
}, [token])
|
|
return token
|
|
}
|