Discord OAuth2 冻结
Posted
技术标签:
【中文标题】Discord OAuth2 冻结【英文标题】:Discord OAuth2 Freezing 【发布时间】:2021-09-26 15:35:25 【问题描述】:我正在使用 Node.js 和 express 开发一个网站。我想选择使用 Discord 登录。
我遵循了npm page 和video guide 上的指南
我可以访问 Discord OAuth 页面,但是当我单击“授权”时,它会在控制台上记录我的 discord ID,但不会重定向(应该重定向到 /auth/success)。如果我单击“取消”,它将立即按预期重定向到 /auth/forbidden。没有错误。
app.js
const express = require('express');
const http = require('http');
const session = require('express-session');
const passport = require('passport');
const discordStrategy = require('./strategies/discordstrategy');
const app = express();
app.use(session(
secret: "secret",
cookie:
maxAge: 60000 * 60 * 24
,
saveUninitialized: false
));
app.use(passport.initialize());
app.use(passport.session());
app.use('/auth', require('./routes/auth'))
const httpServer = http.createServer(app);
httpServer.listen(80, () =>
console.log("HTTP Server running on port 80");
);
auth.js
const express = require('express');
const passport = require('passport');
const router = express.Router();
router.get('/success', (req, res) =>
res.send("sucessful")
);
router.get('/forbidden', (req, res) =>
res.send("forbidden")
);
router.get('/', passport.authenticate('discord'));
router.get('/redirect', passport.authenticate('discord',
failureRedirect: '/auth/forbidden'
), function(req, res)
res.redirect('/auth/success')
);
module.exports = router;
discordstrategy.js
const DiscordStrategy = require('passport-discord').Strategy;
const passport = require('passport');
var scopes = ['identify', 'guilds'];
passport.use(new DiscordStrategy(
clientID: '[redacted]',
clientSecret: '[redacted]',
callbackURL: '/auth/redirect',
scope: scopes
,
function(accessToken, refreshToken, profile, cb)
console.log(profile.id)
));
【问题讨论】:
【参考方案1】:Authing 后,discord 和 express 使用缓存系统来存储您的用户,这样您就不必每次都登录。尝试隐身或其他帐户并登录。
【讨论】:
以上是关于Discord OAuth2 冻结的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Electron 应用程序中使用 Discord OAuth2
Discord API - 传回生成的 OAuth2 代码的随机“无效代码”错误