30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
![]() |
import {NextResponse} from 'next/server';
|
||
|
import type {NextRequest} from 'next/server';
|
||
|
|
||
|
export function Middleware(request: NextRequest) {
|
||
|
// Assume a "Cookie:nextjs=fast" header to be present on the incoming request
|
||
|
// Getting cookies from the request using the `RequestCookies` API
|
||
|
let cookie = request.cookies.get('nextjs');
|
||
|
console.log(cookie); // => { name: 'nextjs', value: 'fast', Path: '/' }
|
||
|
const allCookies = request.cookies.getAll();
|
||
|
console.log(allCookies); // => [{ name: 'nextjs', value: 'fast' }]
|
||
|
|
||
|
request.cookies.has('nextjs'); // => true
|
||
|
request.cookies.delete('nextjs');
|
||
|
request.cookies.has('nextjs'); // => false
|
||
|
|
||
|
// Setting cookies on the response using the `ResponseCookies` API
|
||
|
const response = NextResponse.next();
|
||
|
response.cookies.set('vercel', 'fast');
|
||
|
response.cookies.set({
|
||
|
name: 'vercel',
|
||
|
value: 'fast',
|
||
|
path: '/'
|
||
|
});
|
||
|
cookie = response.cookies.get('vercel');
|
||
|
console.log(cookie); // => { name: 'vercel', value: 'fast', Path: '/' }
|
||
|
// The outgoing response will have a `Set-Cookie:vercel=fast;path=/` header.
|
||
|
|
||
|
return response;
|
||
|
}
|