Я пытаюсь интегрировать CASL в мое угловое приложение.Я не понимаю, как интегрировать это.
// Login Conponent
ngOnInit() {
var jsonBody = {};
jsonBody['email'] = 'peter@klaven';
jsonBody['password'] = 'cityslicka';
this._session.login(jsonBody)
}
//session.ts
import { Ability } from '@casl/ability'
export class Session {
private token: string
constructor(private ability: Ability) {}
login(jsonBody) {
return fetch('https://reqres.in/api/login', { method: 'POST', body: JSON.stringify(jsonBody) })
.then(response => response.json())
.then(session => {
this.ability.update(session.rules)
this.token = session.token
})
}
logout() {
this.token = null
this.ability.update([{ actions: 'read', subject: 'all' }])
}
}
// Ability.ts
import { AbilityBuilder } from '@casl/ability';
export const ability = AbilityBuilder.define(can => {
can('read', 'all')
})
// can pipe
import { CanPipe } from '@casl/angular'
import { Pipe } from "@angular/core";
@Pipe({ name: 'can' })
export class MyCanPipe extends CanPipe {}
<div *ngIf="'Post' | can: 'create'">
<a (click)="createPost()">Add Post</a>
</div>
в приведенном выше коде, я добавил все необходимые коды файлов, которые необходимо указать: способность, сеанс, конвейер, HTML-код и т. Д. Я выполнил все указанные шагибиблиотекой 'https://www.npmjs.com/package/@casl/angular'. Я получаю' Uncaught Error: Не удалось разрешить все параметры для сеанса: (?).'эта ошибка.Я не понимаю, что с ним не так и как интегрировать этот пакет.пожалуйста помоги.Заранее спасибо.