我有以下使用express / node创建的api,但是当我尝试从浏览器访问它时,“如果cookie是在跨站点请求中发送的,则指定SameSite = None和Secure。这将允许第三方使用。”此警告已显示在控制台中,但未检索到任何数据,api如下
let express = require("express");
let app = express();
let bodyparser = require("body-parser")
let jwt = require("jsonwebtoken");
const student = require('./student')
app.use(bodyparser.json)
//used to authenticate the user and create the token
app.get("/auth",(req,res)=>{
console.log("sdsdsds")
var token = jwt.sign({email: user.email}, 'hubDemo', {expiresIn: '1h'});
res.send({token})
})
//fetches the student data and returns
app.get("/student",(req,res)=>{
console.log("tst");
return res.status(200).json({
ok: true,
data: student
});
});
app.listen(3000,()=>{console.log("listening")})
我应该进行哪些更改才能使其正常工作?
答案 0 :(得分:0)
因此,在您给定的情况下,不会使用您的Express API对Cookie进行签名。但是,对于您的令牌,我强烈建议您调查http-only cookies
而不是localStorage。这样可以防止客户端对令牌进行任何调整,而localStorage更容易受到攻击。但是根据您的origin-url,仅在创建cookie时指出SameSite属性即可解决警告。