У меня сервер узла, работающий на localhost:8000
, который выплевывает зарегистрированного в данный момент пользователя на /user
.Теперь в моем интерфейсе на localhost:8001
я бы хотел получить этого пользователя.
Если я вручную перехожу на localhost:8000/user
в моем браузере , я получаю обратно пользователя, если явошел в систему. Всякий раз, когда я вышел из системы, возвращается пустая строка.Пока все хорошо.
Однако: всякий раз, когда я отправляю запрос на localhost:8000/user
из моего внешнего интерфейса , я получаю пустую строку.Так что это работает (я не получаю никаких ошибок, и код состояния 200
), но кажется, что мой интерфейс не знает , что я вошел в систему / мой бэкэнд не понимает, что яя вошел в систему.
Фронтенд
axios.get("localhost:8000/user").then(res => {
console.log(res)
}) //this works, but always behaves like there is no current
//user i.e. that I am logged-out
Backend
//imports here, then:
passport.use(
new Auth0Strategy(
{
domain: "bla.eu.auth0.com",
clientID: "afjgnrtkngewmofmwlefmlwems",
clientSecret:
"jngnsknkankjangkjangjknKJJKGKAHBJVvgjvVgjVbhJBjhbJbj",
callbackURL: "http://localhost:8000/callback",
audience: "https://bla.eu.auth0.com/userinfo",
responseType: "code",
scope: "openid email profile",
},
function(accessToken, refreshToken, extraParam, profile, done) {
return done(null, profile)
}
)
)
passport.serializeUser(function(user, done) {
done(null, user)
})
passport.deserializeUser(function(user, done) {
done(null, user)
})
const app = express()
app.use(cors({ origin: "http://localhost:8001" }))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(
session({ secret: "secret_key", resave: true, saveUninitialized: true })
)
app.use(passport.initialize())
app.use(passport.session())
app.use(function(req, res, next) {
res.locals.loggeedIn = false
if (req.session.passport && typeof req.session.passport.user !== undefined) {
res.locals.loggedIn = true
}
next()
})
app.get("/", function(req, res, next) {
res.send("Root")
})
app.get(
"/login",
passport.authenticate(
"auth0",
{
domain: "bla.auth0.com",
clientID: "kafmkafmkamfkamfka",
redirectUri: "http://localhost:8000/callback",
audience: "https://bla.auth0.com/userinfo",
responseType: "code",
scope: "openid email profile",
},
function(req, res, next) {
res.redirect("/")
}
)
)
app.get("/logout", function(req, res, next) {
req.logout()
res.redirect("/")
})
app.get(
"/callback",
passport.authenticate("auth0", {
failureRedirect: "/failure",
}),
function(req, res) {
res.redirect("/user")
}
)
app.get("/user", function(req, res, next) {
res.send(req.user)
})
app.get("/failure", function(req, res, next) {
res.send("Failure")
})
app.listen(8000, function() {
console.log("running")
})
Есть что-то, чего я здесь не получаю?Посещаете ли вы браузер в localhost:8000/user
и делаете ли вы запрос axios `` localhost: 8000 / user` не то же самое?