Nodejs TokenError: Code was already redeemed
Nodejs TokenError: Code was already redeemed
我试图登录到我的应用程序,该应用程序使用 Google OAuth 流程。我过去曾通过
成功登录过此应用程序
localhost:5000/auth/google
当我 select 我的电子邮件时,进程只挂起大约一分钟然后我得到:
TokenError: Code was already redeemed.
发生在 localhost:5000/auth/google/callback
,我认为这可能不是问题,因为它是我下面 authRoutes.js
文件中的一条路线:
const passport = require('passport');
module.exports = (app) => {
app.get(
'/auth/google',
passport.authenticate('google', {
scope: ['profile', 'email']
})
);
app.get('/auth/google/callback', passport.authenticate('google'));
app.get('/api/logout', (req, res) => {
req.logout();
// prove to whoever is
// making request that
// they are no longer signed in
res.send(req.user);
});
app.get('/api/current_user', (req, res) => {
res.send(req.user);
});
};
我想我会通过转到 localhost:5000/api/current_user
来检查,它应该将用户的 googleID
和 _id
渲染为一个对象,但我得到的是一个空白屏幕,这意味着我没有成功登录。
我不确定这里发生了什么。
当您尝试通过本地应用程序中的 Google OAuth 流程时它只是挂起,这不是问题。您的问题是您没有 MongoDB 数据库 运行,因此您的应用程序很难根据数据库中存储的内容来验证这是新用户还是旧用户登录。
我试图登录到我的应用程序,该应用程序使用 Google OAuth 流程。我过去曾通过
成功登录过此应用程序localhost:5000/auth/google
当我 select 我的电子邮件时,进程只挂起大约一分钟然后我得到:
TokenError: Code was already redeemed.
发生在 localhost:5000/auth/google/callback
,我认为这可能不是问题,因为它是我下面 authRoutes.js
文件中的一条路线:
const passport = require('passport');
module.exports = (app) => {
app.get(
'/auth/google',
passport.authenticate('google', {
scope: ['profile', 'email']
})
);
app.get('/auth/google/callback', passport.authenticate('google'));
app.get('/api/logout', (req, res) => {
req.logout();
// prove to whoever is
// making request that
// they are no longer signed in
res.send(req.user);
});
app.get('/api/current_user', (req, res) => {
res.send(req.user);
});
};
我想我会通过转到 localhost:5000/api/current_user
来检查,它应该将用户的 googleID
和 _id
渲染为一个对象,但我得到的是一个空白屏幕,这意味着我没有成功登录。
我不确定这里发生了什么。
当您尝试通过本地应用程序中的 Google OAuth 流程时它只是挂起,这不是问题。您的问题是您没有 MongoDB 数据库 运行,因此您的应用程序很难根据数据库中存储的内容来验证这是新用户还是旧用户登录。