首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Next-auth signin重定向到/signin?csrf=true

Next-auth signin重定向到/signin?csrf=true
EN

Stack Overflow用户
提问于 2021-02-18 08:50:36
回答 1查看 1.1K关注 0票数 4

我在文档中实现了next-auth,当我转到http://localhost:3001/api/auth/signin时,我看到了以下内容

在此之后,当我单击带有google或github的签名时,我会页面refrshes并被重定向到http://localhost:3001/api/auth/signin?csrf=true,之后什么都不会发生。同样的一页。

我的...nextauth.js文件

代码语言:javascript
复制
    import NextAuth from "next-auth";
import Providers from "next-auth/providers";

export default NextAuth({
    providers: [
        Providers.Google({
            clientId: process.env.GOOGLE_CLIENT,
            clientSecret: process.env.GOOGLE_KEY,
        }),
        Providers.GitHub({
            clientId: process.env.GITHUB_CLIENT,
            clientSecret: process.env.GITHUB_SECRET,
        }),
    ],
});

你知道吗,为什么它不起作用

我认为这与我的节点快速服务器有关,它的代码是

代码语言:javascript
复制
const express = require("express");
const app = express();
const server = require("http").createServer(app);
const next = require("next");
const nextApp = next({ dev: true });
const nextHandler = nextApp.getRequestHandler();


/*******************ROUTES****************/
const userRoutes = require("./server/routes/user");

nextApp.prepare().then(() => {
    app.use("/node/user", userRoutes);
    app.all("*", (req, res) => nextHandler(req, res));
    server.listen(3001, err => {
        if (err) throw err;
        console.log("> ---------Server is ready on port 3001------------");
    });
});
EN

回答 1

Stack Overflow用户

发布于 2022-02-24 13:41:39

我有类似的东西,也使用自定义的快递服务器。在next-auth/dist/server/index.js中,当csrfTokenVerified为false时,您最终会命中重定向。在我的例子中,csrf令牌是与signin/[provider]请求一起发送的。我认为客户端发送的请求体是urlencoded的,而且快递服务器并没有对此进行解析,因此从来没有进行过,直到下一个auth服务器端点为止。我使用节点包bodyparser修复了它,并将这一行添加到我的快速服务器安装app.use(urlencoded({ extended: true }));中。我在下一个v9上没有这个问题,但是更新的版本也有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66256530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档