Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('with redirections.', async () => {
@Entity()
class User extends UserWithPermissions {
@Column({ unique: true })
email: string;
@Column()
password: string;
}
@TokenRequired({ user: fetchUserWithPermissions(User), store: TypeORMStore, cookie: true })
class MyController {
@Get('/foo')
foo() {
return new HttpResponseOK();
}
@Get('/bar')
it('Authentication and authorization', async () => {
@Entity()
class User extends UserWithPermissions {
@Column({ unique: true })
email: string;
@Column()
password: string;
}
@LoginRequired({ user: fetchUserWithPermissions(User) })
class MyController {
@Get('/foo')
foo() {
return new HttpResponseOK();
}
@Get('/bar')
describe('[Authentication|session token|cookie|redirection] Users', () => {
let app: any;
let token: string;
@Entity()
class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ unique: true })
email: string;
@Column()
password: string;
}
@TokenRequired({ store: TypeORMStore, cookie: true })
class ApiController {
@Get('/products')
readProducts() {
return new HttpResponseOK([]);
describe('[Authorization|permissions] Users', () => {
let app;
let tokenUser1: string;
let tokenUser2: string;
@Entity()
class User extends UserWithPermissions {}
@TokenRequired({ user: fetchUserWithPermissions(User), store: TypeORMStore })
class AppController {
@Get('/bar')
@PermissionRequired('access-bar')
bar() {
return new HttpResponseNoContent();
}
@Get('/foo')
@PermissionRequired('access-foo')
foo() {
return new HttpResponseNoContent();
}
}
let app: any;
let token: string;
const cookieOptions: CookieOptions = {
httpOnly: true,
path: '/'
};
let blackList: string[];
function isBlackListed(token: string): boolean {
return blackList.includes(token);
}
@Entity()
class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ unique: true })
email: string;
@Column()
password: string;
}
@JWTRequired({ user: fetchUser(User), blackList: isBlackListed, cookie: true })
class ApiController {
@Get('/products')
readProducts(ctx: Context) {
return new HttpResponseOK({
describe('[Authentication|session token|no cookie|no redirection] Users', () => {
let app: any;
let token: string;
@Entity()
class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ unique: true })
email: string;
@Column()
password: string;
}
@TokenRequired({ store: TypeORMStore })
class ApiController {
@Get('/products')
readProducts() {
return new HttpResponseOK([]);
describe('[Authentication|JWT|no cookie|no redirection] Users', () => {
let app: any;
let token: string;
let blackList: string[];
function isBlackListed(token: string): boolean {
return blackList.includes(token);
}
@Entity()
class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ unique: true })
email: string;
@Column()
password: string;
}
const credentialsSchema = {
additionalProperties: false,
properties: {
email: { type: 'string', format: 'email' },
password: { type: 'string' }
describe('[Authentication|session token|cookie|no redirection] Users', () => {
let app: any;
let token: string;
@Entity()
class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ unique: true })
email: string;
@Column()
password: string;
}
@TokenRequired({ store: TypeORMStore, cookie: true })
class ApiController {
@Get('/products')
readProducts() {
return new HttpResponseOK([]);
import { Column, Entity, PrimaryGeneratedColumn } from '@foal/typeorm/node_modules/typeorm';
import { hashPassword } from '@foal/core';
import { UserWithPermissions } from '@foal/typeorm';
@Entity()
export class User extends UserWithPermissions {
@PrimaryGeneratedColumn()
id: number;
@Column({ unique: true })
email: string;
@Column()
password: string;
async setPassword(password: string): Promise {
this.password = await hashPassword(password);
}
}
import { Column, Entity, PrimaryGeneratedColumn } from '@foal/typeorm/node_modules/typeorm';
@Entity()
export class Product {
@PrimaryGeneratedColumn()
id: number;
@Column()
text: string;
}