如何解决next-auth TypeORM 中的自定义模型不起作用
我正在使用 next-auth 和 nextjs。 我从文档中复制了这个并对其进行了少量更改,但它不起作用。
// models/index.ts
import User,{ UserSchema } from "./User";
export default {
User: {
model: User,schema: UserSchema,},};
// models/User.ts
import Adapters,{ TypeORMUserModel } from "next-auth/adapters";
// Extend the built-in models using class inheritance
export default class User extends (Adapters.TypeORM.Models.User
.model as typeof TypeORMUserModel) {
constructor(name,email,image,emailVerified,points) {
super(name,emailVerified);
if (points) {
this.points = points;
}
}
}
export const UserSchema = {
name: "User",target: User,columns: {
...Adapters.TypeORM.Models.User.schema.columns,points: {
type: "string",nullable: true,};
/pages/api/auth/[...nextauth].tsx
import NextAuth from "next-auth";
import Providers from "next-auth/providers";
import Adapters from "next-auth/adapters";
import Models from "../../../models";
const path = require("path");
const envPath = path.resolve(process.cwd(),".env");
require("dotenv").config({ path: envPath });
export default NextAuth({
providers: [
Providers.Twitch({
clientId: process.env.CLIENT_ID,clientSecret: process.env.CLIENT_SECRET,scope: "user:read:email user:read:subscriptions",}),],adapter: Adapters.TypeORM.Adapter(process.env.DATABASE_URL,{
models: {
User: Models.User,session: {
jwt: true,callbacks: {
async jwt(token,user,account,profile,isNewUser) {
if (account?.accessToken || account?.id) {
token.accessToken = account.accessToken;
token.id = account.id;
}
console.log(user);
if (user?.points) {
token.points = user.points;
}
return token;
},async session(session,token) {
session.user.twitchAccessToken = token.accessToken;
session.user.twitchId = token.id;
session.user.points = token.points;
return session;
},});
它应该可以工作。但是当我调用 useSession 时它不会显示点。 我的数据库是MongoDB,连接字符串。 官方文档:https://next-auth.js.org/tutorials/typeorm-custom-models
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。