2
下面是我的代碼有PassportJS重定向循環
restify = require("restify")
passport = require("passport")
GoogleStrategy = require("passport-google").Strategy
jsonContentType = (req, res, next) ->
res.setHeader("content-type", "application/json")
next(req, res, next)
server = restify.createServer(
name: "Sparked API"
)
passport.use(new GoogleStrategy({
returnURL: "http://localhost:8080/auth/google/return"
realm: "http://localhost:8080/"
}, (id, profile, done) ->
done()
))
server.use(jsonContentType)
server.get("/", (req, res, next) ->
res.send(
message: "hello world!"
)
)
server.get("/auth/google", passport.authenticate("google"))
server.get("/auth/google/return", passport.authenticate("google", {
successRedirect: "/"
failureRedirect: "/"
}))
server.listen(8080, -> console.log("restify listening on 8080"))
看來我得到一個重定向循環,甚至一個非常削減版本
server.get("/auth/google/return", passport.authenticate("google", {
successRedirect: "/"
failureRedirect: "/"
}))
/
是未經驗證的URL,這是怎麼造成一個重定向循環?我也嘗試添加在
server.use(passport.initialize())
server.use(passport.session())
passport.serializeUser((user, done) ->
done(null, user)
)
passport.deserializeUser((obj, done) ->
done(null, obj);
)
但無濟於事
工作有[連接重定向(HTTPS:/ /github.com/jaredhanson/connect-redirection),它將'redirect'函數添加到'res'。我認爲這應該與restify一起工作。 –
謝謝。我會在這裏添加一個錯誤,服務器返回給我,以幫助人們更容易地在谷歌找到這個解決方案:''對象HTTP/1.1 500內部服務器錯誤內容類型:application/json沒有方法'重定向' –