我正在设置一个基于Steam交易的网站,并且网站的来源有问题,当前该网站可以正常运行,但是我们使用Steam作为登录API,并使用了诸如Steam-Passport之类的Node-JS插件。基本上,只要有人尝试登录该网站(我们检查过API密钥是否有效等),它就会在Steam页面上显示错误消息,提示“无效的返回协议”,
我尝试检查我们使用的所有模块是否都已更新,例如steam-passport等。该代码来自我们已设置的auth.js文件。
import { Router } from 'express'
import { User } from '../db'
import passport from 'passport'
import config from '../../config'
const router = Router()
router.get('/auth/steam', passport.authenticate('steam'))
router.get('/auth/steam/return', passport.authenticate('steam', { failureRedirect: '/' }),
(req, res) => {
res.redirect(config.app.url)
}
)
router.get('/auth/reload', (req, res) => {
if (!req.user) {
return res.end(200)
}
const token = (' ' + req.user.token).slice(1)
User.findById(req.user._id).exec()
.then(weird => {
const user = weird.toObject()
user.token = token
req.login(user, (err) => {
if (err) return res.end(200)
res.end(JSON.stringify(req.user))
})
})
})
router.get('/auth/loadAuth', (req, res) => {
res.end(JSON.stringify(req.user))
})
router.get('/auth/logout', (req, res) => {
req.logout()
res.redirect(config.app.url)
})
export default router