react-cookie
包:npm install react-cookie --save
const AWS = require('aws-sdk');
const Cookie = require('cookie');
AWS.config.update({region: 'us-east-1'});
exports.handler = async (event, context) => {
const request = event.Records[0].cf.request;
const headers = request.headers;
const response = event.Records[0].cf.response;
if (request.uri === '/set-cookie') {
const params = {
domain: '.example.com',
httpOnly: true,
maxAge: 3600,
name: 'my-cookie',
path: '/',
secure: true,
value: 'example-value'
};
const cookieHeader = Cookie.serialize(params.name, params.value, {
domain: params.domain,
path: params.path,
expires: new Date(Date.now() + params.maxAge * 1000),
maxAge: params.maxAge,
httpOnly: params.httpOnly,
secure: params.secure
});
response.headers['set-cookie'] = [
{
key: 'Set-Cookie',
value: cookieHeader
}
];
return response;
} else if (request.uri === '/get-cookie') {
const cookies = headers.cookie
? Cookie.parse(headers.cookie[0].value || '')
: {};
return {
status: '200',
body: JSON.stringify({ 'my-cookie': cookies['my-cookie'] || '' }),
headers: {
'content-type': [
{
key: 'Content-Type',
value: 'application/json'
},
],
},
};
}
return response;
};
resources:
Resources:
MyLambdaEdge:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
CodeUri: ./build/lambda
下一篇:部署在弹性Beanstalk上