Comments (6)
How are you initializing the MongoDB adapter?
from lucia.
import { MongodbAdapter } from '@lucia-auth/adapter-mongodb';
import User from '../mongodb/models/users.js'; // mongoose model
import Session from '../mongodb/models/sessions.js'; // mongoose model
const adapter = new MongodbAdapter( Session, User );
export const lucia = new Lucia(
adapter,
{
sessionCookie: {
attributes: {
secure: process.env.NODE_ENV === "production"
}
},
getUserAttributes: (attributes) => {
return {
discordId: attributes.discord_id,
username: attributes.username,
};
}
});
from lucia.
What's Session
and User
?
from lucia.
Session
import mongodb from 'mongoose';
const Session = mongodb.models.Session || mongodb.model("Session",
new mongodb.Schema(
{
_id: {
type: String,
required: true
},
user_id: {
type: mongodb.Schema.Types.ObjectId,
ref: 'User',
required: true
},
expires_at: {
type: Date,
required: true
}
},
{ _id: false }
));
export default Session;
User
import mongodb from 'mongoose';
const User = mongodb.models.User || mongodb.model("User",
new mongodb.Schema(
{
_id: {
type: mongodb.Schema.Types.ObjectId,
required: true
},
discordId: {
type: String,
required: false
},
createdAtTimestamp: {
type: Date,
required: false
},
username: {
type: String,
required: true
},
globalName: {
type: String,
required: false
},
discriminator: {
type: String,
required: false
},
isBot: {
type: Boolean,
required: false
},
isSystem: {
type: Boolean,
required: false
},
avatar: {
type: String,
required: false
},
banner: {
type: String,
required: false
},
permissions: {
type: [String], // This specifies that "roles" is an array of strings
required: false
},
roles: {
type: [String], // This specifies that "roles" is an array of strings
required: false
},
},
{ _id: false }
));
export default User;
from lucia.
This is expected since the adapter doesn't accept a Mongoose schema and instead accepts a MongoDB collection
Mongoose example: https://lucia-auth.com/database/mongoose
from lucia.
Indeed.
I confirm everything works by passing a MongoDB collection.
Thanks a lot.
from lucia.
Related Issues (20)
- [Bug]: getUserAttributes doesn't include relations field of the user HOT 1
- Global Register types conflicting with each other HOT 1
- [Bug]: Adapter querying all columns, not respecting DatabaseUserAttributes HOT 2
- [Bug]: validateSession returns null. Sveltekit + MongoDB + Lucia HOT 8
- [Docs]: clarify `getUserAttributes()` should mention how it handles the user `id` column HOT 1
- [Feature Request]: Add sequelize ORM support
- lucia auth get data from from different table
- [Bug]: custom sessionId does not work with Drizzle adapter HOT 5
- [Feature Request]: Drizzle pg UUID support on types
- [Bug]: incompatible types with generatedAlwaysAsIdentity
- [Bug]: DrizzleSQLiteAdapter type error breaks build HOT 6
- [Bug]: Lucia using Postgres via Drizzle - Date issue
- [Bug]: validateSession return null in Express Mongoose HOT 7
- [Bug]: Drizzle Adapter not accepting Sessions nor User tables HOT 4
- [Bug]: session table @@map in prisma adapter not working in production (Vercel)
- [Docs]: NextJs validation request problem HOT 2
- [Bug]: Official Website StackBlitz demo is not working
- [Bug]: Is it not possible to use Lucia in Next.js middleware? HOT 1
- [Bug]: await is not defined
- [Bug]: this.sql.unsafe is not a function HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lucia.