我正在使用typescript创建一个figma插件。我正在插件中创建一个登录模块。我已经用nodejs创建了api。我面临的问题是我的cookie没有被存储。
我已经打开了figma桌面应用程序的控制台,但没有cookie。
我们可以用nodejs创建cookie并将其存储在桌面应用程序中吗?
Code for Nodejs:
app.post("/user-login", async(req,res)=>{
const {email, password} = req.body;
db.query(`select * from users where email = '${email}' and role_id='3'`, async(err,result)=>{
if(err){
res.json({status: false,msg:"There was an error while fetching data. Please Try again later"});
}else{
// console.log(result);
if(result.length > 0){
var resp = await bcrypt.compare(password, result[0].password);
if(resp){
const regtoken = jwt.sign({ id: result[0].user_id }, "943h9DH(H#R(*#HD(HD(RTH#(*Dh9th9gn498cNA(RN97BR()))))))d@ERR#R%", {
expiresIn: "90d",
// httpOnly: true
})
const cookiesOptions = {
expiresIn: new Date(Date.now() + "" * 24 * 60 * 60 * 1000),
// httpOnly: true
}
res.cookie('checklogin', regtoken, cookiesOptions);
res.json({status: true,msg:"Login successfully"});
}else{
res.json({status: false,msg:"Invalid login credentials"});
}
}else{
res.json({status: false,msg:"Access Denied"});
}
}
})
})
代码以命中API:
const PostData = async(e) => {
e.preventDefault();
var formdata = new FormData();
formdata.append('email', user.email);
formdata.append('password', user.password);
var data = JSON.stringify({email:user.email, password:user.password})
const res = await axios.post("http://localhost:8000/user-login",data, {
headers: {
"Content-Type" : "application/json",
"Access-Control-Allow-Origin": "*"
}
})
if(res.data.status){
setCookie('testing', 'true')
// localStorage.setItem("islogin","true");
console.log("login done");
}else{
console.log("login failed");
}
}
1条答案
按热度按时间wfveoks01#
Node.js服务器负责创建cookie并将其传输到客户端,但未能将其存储在Figma桌面应用程序中,因为这是一个非常规的cookie存储位置-它们通常存储在Web浏览器中,而不是桌面应用程序中。
要在桌面应用中保留数据,您需要考虑多个选项,例如根据应用的规范使用数据库、本地存储甚至用户的系统文件。