mirror of
https://github.com/vercel/commerce.git
synced 2025-05-18 15:36:58 +00:00
25 lines
859 B
TypeScript
25 lines
859 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('')
|
|
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
|
|
}
|