nookies
v2.5.2
Next.js를위한 쿠키 도우미 컬렉션
쿠키 설정 및 파괴는 서버 측에서도 작동합니다.
yarn add nookies
여기에서 예제 코드를 사용하여 재생할 수 있습니다.
import nookies from 'nookies'
export default function Me ( ) {
return < div > My profile </ div >
}
export async function getServerSideProps ( ctx ) {
// Parse
const cookies = nookies . get ( ctx )
// Set
nookies . set ( ctx , 'fromGetInitialProps' , 'value' , {
maxAge : 30 * 24 * 60 * 60 ,
path : '/' ,
} )
// Destroy
// nookies.destroy(ctx, 'cookieName')
return { cookies }
} import { parseCookies , setCookie , destroyCookie } from 'nookies'
function handleClick ( ) {
// Simply omit context parameter.
// Parse
const cookies = parseCookies ( )
console . log ( { cookies } )
// Set
setCookie ( null , 'fromClient' , 'value' , {
maxAge : 30 * 24 * 60 * 60 ,
path : '/' ,
} )
// Destroy
// destroyCookie(null, 'cookieName')
}
export default function Me ( ) {
return < button onClick = { handleClick } > Set Cookie </ button >
} const express = require ( 'express' ) ;
const dev = process . env . NODE_ENV !== 'production' ;
const app = next ( { dev } ) ;
const handle = app . getRequestHandler ( ) ;
const { parseCookies , setCookie , destroyCookie } = require ( 'nookies' ) ;
app . prepare ( )
. then ( ( ) => {
const server = express ( ) ;
server . get ( '/page' , ( req , res ) => {
// Notice how the request object is passed
const parsedCookies = parseCookies ( { req } ) ;
// Notice how the response object is passed
setCookie ( { res } , 'fromServer' , 'value' , {
maxAge : 30 * 24 * 60 * 60 ,
path : '/page' ,
} ) ;
// destroyCookie({ res }, 'fromServer');
return handle ( req , res ) ;
} ) ;
) ; 클라이언트 측 사용의 경우
ctx매개 변수를 생략하십시오. 빈 객체 ({}),null또는undefined로 설정하여 그렇게 할 수 있습니다.
parseCookies(ctx, options) 또는 nookies.get(ctx, options)Next.js context || (Express request object)a custom resolver function (default: decodeURIComponent)setCookie(ctx, name, value, options) 또는 nookies.set(ctx, name, value, options)
res.send()로 서버에서 응답을 종료하는 것을 잊지 마십시오.
(Next.js context) || (Express request object)destroyCookie(ctx, name, options) 또는 nookies.destroy(ctx, 'token', options)
res.send()로 서버에서 응답을 종료하는 것을 잊지 마십시오. 이것이 쿠키가 제거되지 않은 이유 일 수 있습니다.
(Next.js context) || (Express response object)MIT