有人可以向我解释一下index.js 文件和_app.js 有什么区别吗?在下一个教程中,它说要更改index.js,但为我呈现的是_app.js。
我在 NestJs 中有这段代码,下面有以下文件,但现在它说“未知的身份验证策略“本地””,我已经寻找解决方案,它们都指向导入错误,但我已将 localstrategy 导入到 auth. module 和 app.module (我已经测试过将其从 app.module 中取出,但它不会改变任何内容。)
应用程序模块.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ThrottlerModule } from '@nestjs/throttler';
import { MongooseModule } from '@nestjs/mongoose';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { LocalStrategy } from './auth/local.strategy';
@Module({
imports: [
MongooseModule.forRoot(
'mongodb+srv://user:password@db.db.mongodb.net/db?retryWrites=true&w=majority',
),
ThrottlerModule.forRoot({
ttl: 60,
limit: 10,
}),
AuthModule,
UsersModule,
],
controllers: [AppController],
providers: [AppService, …Run Code Online (Sandbox Code Playgroud) 我正在 NextJs 中创建一个应用程序,并在用户登录时设置 cookie 授权:
res.setHeader("Set-Cookie", [
cookie.serialize("authorization", `Bearer ${jwtGenerated}`, {
httpOnly: true,
secure: process.env.NODE_ENV !== "development",
sameSite: true,
maxAge: 60 * 60 * 12,
path: "/",
})
]);
Run Code Online (Sandbox Code Playgroud)
这部分代码工作得很好,它在浏览器中设置了 cookie。/api/logout但是,当我注销时,我向执行此代码的url 发出请求:
import cookie from "cookie";
export default (req, res) => {
res.setHeader("Set-Cookie", [
cookie.serialize("authorization", "false", {
httpOnly: true,
secure: process.env.NODE_ENV !== "development",
sameSite: true,
maxAge: 5,
path: "/",
})
]);
return res.status(200).json({ roles: null, auth: false });
};
Run Code Online (Sandbox Code Playgroud)
但它似乎在生产中不起作用。当我在本地主机时,它会删除 cookie 并更改它们的值。然而在生产中没有任何改变。到期日、价值和其他一切都保持不变。难道我做错了什么?当用户注销时,是否有其他方法可以删除此 cookie?