我有两个云函数,youtubeRedirect 和 youtubeToken。在进行 URL 重写之前(如此处找到的https://firebase.google.com/docs/hosting/functions),一切正常。
youtubeRedirect 将用户带到 Google 身份验证屏幕,并提供到 youtubeToken 函数的重定向。它设置这两个cookie
res.cookie('state', state.toString(), { maxAge: 3600000, secure: true, httpOnly: true });
res.cookie('UID', req.query.uid);
Run Code Online (Sandbox Code Playgroud)
当用户重定向到 youtubeToken 时,会检查 cookie 值;
if (!req.cookies.state) {throw new Error('State cookie not set or expired.');}
当对我的自定义域使用 URL 重写时,此时会失败,因为 req.cookies 为空。当我在 Chrome 中检查 cookie 时,我可以看到已为我的自定义域设置了 cookie。我在 firebase.json 文件中重写了 youtubeRedirect 和 youtubeToken
"hosting": {
"public": "api",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "/youtubeRedirect",
"function": "youtubeRedirect"
},
{
"source": "/youtubeToken",
"function": "youtubeToken"
}
] …Run Code Online (Sandbox Code Playgroud)