Update your Mongoose client to Lucia v2

Install the latest version of the Mongoose adapter.

npm i @lucia-auth/adapter-mongoose@latest
pnpm add @lucia-auth/adapter-mongoose@latest
yarn add @lucia-auth/adapter-mongoose@latest

Remove single use keys#

// db.<collection_name>
db.authKey.deleteMany({
	expires: { $ne: null }
});

Update Key model#

Remove expires and primary_key fields.

const Key = mongoose.model(
	"auth_key",
	new mongoose.Schema(
		{
			_id: {
				type: String
			},
			user_id: {
				type: String,
				required: true
			},
			hashed_password: String
		},
		{ _id: false }
	)
);

Initialize adapter#

mongoose() is now a named export instead of a default export. The adapter now takes models for users, keys, and session, instead of the Mongoose client.

import { lucia } from "lucia";
import { mongoose } from "@lucia-auth/adapter-mongoose";
import mongodb from "mongoose";

const User = mongoose.model();
const Key = mongoose.model();
const Session = mongoose.model();

const auth = lucia({
	adapter: mongoose({
		User,
		Key,
		Session
	})
	// ...
});

// handle connection
mongodb.connect(mongoUri, options);