Auth module for node.js backend applications
npm install @iterout/auth-module
To use correctly the auth-module you must configure:
- Email service
- Jwt service (optional)
import { configureAuth } from "@iterout/auth-module";
import { createEmailConfig } from "@iterout/email-sender-module";
import { join } from "path";
// create auth email configuration
const authEmailConfig: EmailConfig = createEmailConfig(
[
join(process.cwd(), [MAIL_TEMPLATE_DIR],
join(process.cwd(), "node_modules", "@iterout", "auth-module", "mail_templates")
],
[EMAIL_SENDER],
[EMAIL_SENDER_PASSWORD],
[EMAIL_SERVICE]
)
// configure auth module
configureAuth(
authEmailConfig,
[FRONTEND_URL],
[JWT_SECRET], //optional
[JWT_ACCESS_TOKEN_DURATION], //optional
[JWT_REFRESH_TOKEN_DURATION] //optional
)Verify user credential to mongodb and retrun authorizations tokens
login(authData: AuthData): Promise<TokenData>Clear and return tokens
logout(): Promise<TokenData>Check and save user to mongodb
registration(user: User)Confirm user registration. Set isActive = true
confirmSignIn(userId: string)Check refreshToken and return new accessToken
refreshToken(refreshToken: string): Promise<TokenData>Check accessToken, and user roles
authorizeUser(accessToken: string, ...roles: string[]): Promise<User>Getting user info (password will be blank)
getUserById(userId: string)Delete user
deleteUser(userId: string)Update user
updateUser(userUpdated: User)Create empty user
createEmptyUser(): User