相关疑难解决方法(0)

为什么 cookie 不通过 Next.js 中的 getServerSideProps 发送到服务器?

Cookies不是通过 发送到服务器的getServerSideProps,下面是前端的代码:

export async function getServerSideProps() {
  const res = await axios.get("http://localhost:5000/api/auth", {withCredentials: true});
  const data = await res.data;
  return { props: { data } }
}
Run Code Online (Sandbox Code Playgroud)

在服务器上,我有一个检查访问 JWT 令牌的策略。

export class JwtStrategy extends PassportStrategy(Strategy, "jwt") {
    constructor() {
        super({
            ignoreExpiration: false,
            secretOrKey: "secret",
            jwtFromRequest: ExtractJwt.fromExtractors([
                (request: Request) => {
                    console.log(request.cookies) // [Object: null prototype] {}
                    let data = request.cookies['access'];
                    return data;
                }
            ]),
        });
    }

    async validate(payload: any){
        return payload;
    }
}
Run Code Online (Sandbox Code Playgroud)

也就是说,当我通过getServerSidePropscookie 发送请求时,不会到达服务器,尽管如果我发送,例如通过useEffect …

node.js jwt reactjs next.js nestjs

23
推荐指数
1
解决办法
3万
查看次数

使用 getServerSideProps 获取内部 API?(下一个.js)

我是 Next.js 的新手,我正在尝试理解建议的结构并处理页面或组件之间的数据。

例如,在我的页面中home.js,我获取了一个调用的内部 API /api/user.js,它从 MongoDB 返回一些用户数据。我通过使用fetch()从 inside 调用 API 路由来做到这一点getServerSideProps(),它在一些计算后将各种道具传递给页面。

根据我的理解,这对 SEO 有好处,因为道具在服务器端被获取/修改,页面让它们准备好呈现。但后来我的Next.js文档,你不应该用在阅读fetch()到所有的API路线getServerSideProps()。那么我应该怎么做才能遵守良好的实践和良好的 SEO?

我没有home.js在 API 路由本身中进行所需计算的原因是我需要来自这个 API 路由的更多通用数据,因为我也会在其他页面中使用它。

我还必须考虑缓存,哪个客户端使用 SWR 来获取内部 API 非常简单,但服务器端我还不确定如何实现它。

home.js

export default function Page({ prop1, prop2, prop3 }) {
        // render etc.
}

export async function getServerSideProps(context) {
  const session = await getSession(context)
  let data = null
  var aArray = [], bArray = [], cArray = []
  const { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js fetch-api server-side-rendering next.js

9
推荐指数
1
解决办法
7532
查看次数