@pankaj1791/nest-auth
v0.0.1
Published
this is typeorm-auth extension with nestjs and dependent on @pankaj1791/nest-core library
Readme
description
this is typeorm-auth extension with nestjs and dependent on @pankaj1791/nest-core library
install
npm i @pankaj179001/nest-auth @pankaj1791/nest-coreIntegration
TypormAuthModule.register(
{
jwtSecretKey: 'Your secret key',
disablePermission: true,
//...additional options
Helpers: { roles: helpers as RoleHelpers },
},
{ dataSource: dataSource, TenantRepo: Tenant, userRepo: User },
);
multiTenantLoginHeader?: "header name" //default is tenant-id;
//header that is required if user is associated with multiple tenants
import TypormauthModule and register
Role helpers
this are the helpers that can be used to extend the query functionality as per requirement
export class helpers implements RoleHelpers {
BeforeFindAll(args?: FindAllArgs) {
console.log('function called before find all roles');
}
returnAble?: returnable[] = [];
}Datasource
import { AuthEntities } from '@pankaj179001/nest-auth';
const Entities = [...AuthEntities, Tenant, User, TenantUser];
// OR
//const Entities = [...AuthEntities,'./path to your entities'];
export const dataSourceOptions: DataSourceOptions = {
type: 'postgres',
host: 'host',
port: 5432,
username: 'username',
password: 'password',
database: 'database name',
entities: Entities,
};
const dataSource = new DataSource(dataSourceOptions);
export default dataSource;
import AuthEntities from pankaj179001 nest auth librarySeed Funtion
You can call the Permission Seed Function in your seed file
Example:
await PermissionSeed<AuthRoles, AuthActions, AppModules>({
datasource: this.datasource,
addOnDefaultRoles: ['client'],
defaultRoleModuleAccess: {
client: ['Roles', 'Permissions'],
},
defaultRolePermissionsAccess: {
client: {
create: ['roles', 'users'],
update: ['users'],
},
},
ModulePermissions: [
{ module: 'Roles', subjects: ['roles'] },
{ module: 'Users', subjects: ['users'] },
{ module: 'Tenants', subjects: ['tenants'] },
],
AddOnPermissions: [{ module: 'Roles', Actions: ['derive'] }],
TruncateAuthEntities: false,
});here _ is a separater for modulename and the permission subjects
we can have add on permissions as per application business logic Eg:
AddOnPermissions: [{ module: 'Roles', Actions: ['derive'] }];here derive is the add on actions which comes from AuthActionsFeatures
Role-Based Access Control (RBAC)
Customizable Authentication Strategies
Guards
Entity Inheritance
Role Permission Seed Function
auth
This library was generated with Nx.
