小编Mic*_*son的帖子

iOS 不从快速 cookie 会话中保存 cookie

这个问题一直让我抓狂。我在前端使用 React 和 Apollo (GraphQL),并cookie-session在后端使用 Passport.js 和 Express 进行身份验证。在桌面上的任何浏览器(尚未测试 safari)上,一切都可以完美运行,但是 cookie 不会保存在 IOS 上,并且用户无法登录。passport-local仅当使用 和 且浏览器尚未有 cookie 时才会出现此问题。如果我使用登录passport-googlepassport-facebook它有效,那么如果我注销并passport-local再次使用,即使它是不同的用户,它也有效。另外,如果我进入设置并关闭 IOS Safari 的“防止跨站点跟踪”,它第一次就能工作,但是如果我想将其用作 PWA,则无法将其关闭。

我的快速设置如下所示(省略所有导入):

app.use(
  cookieSession({
    maxAge: 24 * 60 * 60 * 1000 * 30,
    keys: [process.env.COOKIE_KEY],
    overwrite: true
  })
);

app.use(passport.initialize());
app.use(passport.session());

app.use(flash());

const whitelist = [
  "https://toomanylists.com",
  "https://www.toomanylists.com"
];

app.use(
  cors({
    origin: (origin, callback) => {
      console.log(origin);
      if (whitelist.indexOf(origin) !== -1 || !origin) {
        callback(null, true);
      } else …
Run Code Online (Sandbox Code Playgroud)

https session-cookies ios express passport.js

6
推荐指数
1
解决办法
1821
查看次数

标签 统计

express ×1

https ×1

ios ×1

passport.js ×1

session-cookies ×1