简体   繁体   English

Express session 不在 ios/safari 浏览器上存储 cookies,但在 android 上工作正常

[英]Express session not storing cookies on ios/safari browser, but works fine on android

I have been facing this issue for weeks now, am trying to login to my app on IOS device, it turns out that express-session did not store cookies in the browser, for this reason, I was unable to login.我已经面临这个问题好几个星期了,我试图在 IOS 设备上登录我的应用程序,事实证明 express-session 没有在浏览器中存储 cookies,因此我无法登录。 But I was able to login on my android device and laptop.但我能够登录我的 android 设备和笔记本电脑。 But am still unable to access the app on safari on my android device.但是我仍然无法在我的 android 设备上访问 safari 上的应用程序。

My frontend stack is Nextjs, and Nodejs with express for my backend.我的前端堆栈是 Nextjs,后端是带有 express 的 Nodejs。 Backend was deployed on heroku and frontend was deployed on.netlify后端部署在heroku,前端部署在.netlify

Pls how do I solve this problem.请问我该如何解决这个问题。 Here is what my code looks like.这是我的代码的样子。 I did like my app to work on all browser.我确实希望我的应用程序可以在所有浏览器上运行。

============================Server.js===================================== ============================Server.js=================== ==================

import express from "express"
import rootRoute from "./src/root_Route.js"
import cookieParser from "cookie-parser"
import passport from "passport"
import connectPgSimple from "connect-pg-simple"
import session from "express-session"
import dotenv from "dotenv"
import cors from "cors"
import "./src/LIB/DB-Client.js"
import "./src/PASSPORT_STRATEGY/google-auth-strategy.js"
import "./src/PASSPORT_STRATEGY/facebook-auth-strategy.js"
import { scheduleJob } from "node-schedule"
import pool from "./src/LIB/DB-Client.js"
dotenv.config()
const app = express()


const connection = process.env.PRODUCTION !== "production" ? process.env.DEV_DATABASE_URL : process.env.DATABASE_URL

app.use(
  cors({
    origin: ["http://localhost:3000", "https://nairaonly-frontend.netlify.app"],
    credentials: true,
    methods: "GET, PUT, POST, DELETE",
    optionsSuccessStatus: 200,
  })
)
const PgStore = connectPgSimple(session)
const store = new PgStore({ conString: connection, schemaName: "hidden", createTableIfMissing: true })

app.use(express.json())
app.use(cookieParser())
app.set("trust proxy", 1)

app.use(
  session({
    store: store,
    secret: process.env.SESSION_SECRET,
    saveUninitialized: false,
    resave: true,
    proxy: true,
    cookie: {
      maxAge: 1000 * 60 * 60 * 24,
      httpOnly: true,
      sameSite: process.env.NODE_ENV === "production" ? 'none' : 'lax',
      secure: process.env.NODE_ENV === "production" ? true : false,
    },
  })
)

app.get("/", (req, res) => {
  res.send("API Running...")
})

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

const PORT = process.env.PORT || 4000

app.listen(PORT, (req, res) => console.log(`Server running on PORT:${PORT}...`))

I get this solved by registering a domain name, and added a subdomain which was used for my backend and the domain itself for my frontend.我通过注册域名解决了这个问题,并添加了一个用于我的后端的子域和用于我的前端的域本身。 I then point the DNS to each other.然后我将 DNS 指向对方。 This solve the issue这解决了问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么AJAX不能在iOS Safari中称成功:功能,但在其他所有浏览器上都能正常工作? - Why does AJAX not call the success: function in iOS Safari but works fine every other browser? Safari 上的跨站点跟踪不允许快速会话发送 cookie - Cross site tracking on safari not allowing express session send cookies 移动浏览器(chrome,safari)cookie在结束会话时未删除 - Mobile browser(chrome,safari) cookies not deleted on closing session 从 CDN 加载字体,在 Chrome 浏览器和 Safari iOS 模拟器上没有问题,但在 iOS Safari 浏览器上没有加载? - Loading a font from a CDN and it's fine on Chrome Browser and Safari for iOS Simulator but not loading on iOS Safari browser? Phonegap画布无法在Android上绘制,但在浏览器中可以正常工作 - Phonegap canvas not drawing on android but works fine in browser 仅在iPad上iOS 9 Safari Webkit崩溃(iPhone正常) - iOS 9 safari webkit crash only on iPad (iPhone works fine) 页面滑块在 Android 上不起作用,在 iOS 上工作正常 - Page slider not working On Android, works fine in iOS iOS Safari Javascript 不工作,但在桌面和 Android 上工作 - iOS Safari Javascript not working but works on Desktop and Android Javascript全局变量未定义的移动Safari Android工作正常 - Javascript global variable undefined mobile safari Android works fine Chrome工作时,IOS6上Safari中的会话错误 - Session Error in Safari on IOS6 while Chrome works
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM