admin.auth(...).createSessionCookie 不是函数
admin.auth(...).createSessionCookie is not a function
我正在尝试完全按照文档 documentation 的说明管理 firebase 身份验证会话,但是当我使用 post 方法“/loginSession”节点 Js [=22] 通过 Ajax 请求时=] 我这个 :
`error: TypeError: admin.auth(...).createSessionCookie is not a function
at app.post (C:\Projectos\Eventos\functions\index.js:48:16)
at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Projectos\Eventos\functions\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Projectos\Eventos\functions\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)
at C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:335:12)
at next (C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:275:10)
at urlencodedParser (C:\Projectos\Eventos\functions\node_modules\body-parser\lib\types\urlencoded.js:82:7)
at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)`
这是我管理请求的方式
app.post('/loginSession',(req,res)=>{
const idToken = req.body.idToken.toString();
const expiresIn = 60*60*24*5*1000;
admin.auth().createSessionCookie(idToken,{expiresIn}).then((sessionCookie)=>{
const options = {maxAge:expiresIn,httpOnly:true,secure:true};
res.cookie('session',sessionCookie,options);
res.end(JSON.stringify({status:'success'}));
},error=>{
res.status(401).send('error');
});
});
我正在使用 express、body-parser 和 firebase
火力地堡版本 3.18.4
节点版本 8.9.3
我刚刚意识到我需要 5.12.0 或更高版本
Firebase Admin SDK 5.12 版中引入了 createSessionCookie()
方法(以及其他会话管理方法)。参见changelog for the Firebase Admin SDK for Node。升级到最新版本以消除错误。
我正在尝试完全按照文档 documentation 的说明管理 firebase 身份验证会话,但是当我使用 post 方法“/loginSession”节点 Js [=22] 通过 Ajax 请求时=] 我这个 :
`error: TypeError: admin.auth(...).createSessionCookie is not a function
at app.post (C:\Projectos\Eventos\functions\index.js:48:16)
at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Projectos\Eventos\functions\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Projectos\Eventos\functions\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)
at C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:335:12)
at next (C:\Projectos\Eventos\functions\node_modules\express\lib\router\index.js:275:10)
at urlencodedParser (C:\Projectos\Eventos\functions\node_modules\body-parser\lib\types\urlencoded.js:82:7)
at Layer.handle [as handle_request] (C:\Projectos\Eventos\functions\node_modules\express\lib\router\layer.js:95:5)`
这是我管理请求的方式
app.post('/loginSession',(req,res)=>{
const idToken = req.body.idToken.toString();
const expiresIn = 60*60*24*5*1000;
admin.auth().createSessionCookie(idToken,{expiresIn}).then((sessionCookie)=>{
const options = {maxAge:expiresIn,httpOnly:true,secure:true};
res.cookie('session',sessionCookie,options);
res.end(JSON.stringify({status:'success'}));
},error=>{
res.status(401).send('error');
});
});
我正在使用 express、body-parser 和 firebase 火力地堡版本 3.18.4 节点版本 8.9.3
我刚刚意识到我需要 5.12.0 或更高版本
Firebase Admin SDK 5.12 版中引入了 createSessionCookie()
方法(以及其他会话管理方法)。参见changelog for the Firebase Admin SDK for Node。升级到最新版本以消除错误。