
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
nestjs-better-auth
Advanced tools
A better-auth Nestjs module that supports Fastify and Express v5 http-adapters out of the box.
pnpm i nestjs-better-auth
This module supports two HTTP adapters out of the box:
Express v5
Fastify
Please refer to the respective integration guides for detailed setup instructions.
This library supports GraphQL context out of the box.
BetterAuthModule
Simply register the module in your AppModule
(or your feature)
import { Module } from '@nestjs/common';
import { BetterAuthModule } from 'nestjs-better-auth';
@Module({
imports: [
BetterAuthModule.forRoot({
betterAuthConfig: {
emailAndPassword: {
enabled: true,
},
},
}),
],
})
class AppModule {}
You can also leverage forRootAsync
if you need to inject any configuration/third-party value to build your config.
This library exposes a BetterAuthGuard
to protect authenticated routes. To use it globally for all routes, register it as follows:
import { Module } from '@nestjs/common';
import { BetterAuthModule, BetterAuthGuard } from 'nestjs-better-auth';
@Module({
imports: [
BetterAuthModule.forRoot({
betterAuthConfig: {
emailAndPassword: {
enabled: true,
},
// ...your configuration
},
}),
],
providers: [
{
provide: 'APP_GUARD',
useClass: BetterAuthGuard,
},
],
})
class AppModule {}
Some routes should be publicly accessible without session validation. You can provide a decorator token to the module to specify which routes should skip authentication. Alternatively, you can create your own Auth guard or apply the existing one manually to specific controllers or routes.
Example:
import { Controller, Get, SetMetadata, Module } from '@nestjs/common';
const PublicRouteToken = Symbol('publicRoute');
const IsPublic = () => SetMetadata(PublicRouteToken, true);
@Controller()
class MyController {
@IsPublic()
@Get()
publicRoute() {}
@Get()
authenticatedRoute() {}
}
@Module({
imports: [
BetterAuthModule.forRoot({
skipAuthDecoratorMetadataKey: PublicRouteToken,
betterAuthConfig: {
emailAndPassword: {
enabled: true,
},
},
}),
],
providers: [
{
provide: 'APP_GUARD',
useClass: BetterAuthGuard,
},
],
})
class AppModule {}
We're maintaining CommonJS compatibility as many existing applications still use CJS. While we plan to transition to ESM in the future, this approach ensures broader compatibility for now.
WIP
You can read the authenticated/current user session using @CurrentUserSession
decorator.
By default, it will return the user and session but it accepts a parameter user
or session
, examples below
import { CurrentUserSession, BetterAuthUserSession } from 'nestjs-better-auth';
import { Controller } from '@nestjs/common';
class Controller {
@Get('me')
getMe(
@CurrentUserSession() userAndSession: BetterAuthUserSession,
@CurrentUserSession('user') user: BetterAuthUserSession['user'],
@CurrentUserSession('session') session: BetterAuthUserSession['session'],
) {
// your logic
}
}
We welcome contributions to improve nestjs-better-auth! Here's how you can help:
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)Please ensure you follow our coding standards and include appropriate tests for new features.
FAQs
A better-auth module for NestJS
The npm package nestjs-better-auth receives a total of 8 weekly downloads. As such, nestjs-better-auth popularity was classified as not popular.
We found that nestjs-better-auth demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.