cloned from auth.js express example oauth providers: github credential provider with database session management mongodb auth.js adapter password hashing with bcrypt credential validation with zod