recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Avec la séparation front-end et back-end (front-end et back-end mv*), comment le front-end gère-t-il les exigences d'autorisation (logique d'autorisation) ?

Comment le front-end gère-t-il la logique d'autorisation lorsque le front-end et le back-end sont séparés (front-end et back-end mv*) ?
(mv* peut être mvc, mtv ou mvvm, etc.)

Back-end :

 BooksController
     indexAction()
     showAction($id)
     editAction($id)
         $book = Book::findOrFail($id);
         $user = Auth::user();
         //授权判断
         if ($user->hasRole/Permission('edit-book')) {
             //$acl->isAllowed($user, $book, 'edit-book')
             .....
             $book->price = Input::get('price');
             $book->save();
             ......
         }
         .......
         
     createAction()
     deleteAction($id)

Le contrôleur/action back-end et d'autres opérations utilisent généralement des systèmes d'autorisation tels que acl/rbac pour prendre des décisions d'autorisation.

La question est :
Comment les frameworks front-end mv* comme Emberjs, Angularjs, etc. gèrent-ils la partie autorisation ?
Par exemple, les utilisateurs non connectés (utilisateurs navigants) afficheront 10 articles et les utilisateurs connectés afficheront plus de contenu.

Méthode 1) Comme le backend, utiliser un système d'autorisation/une logique d'autorisation distincte pour gérer cela ?

Méthode 2) Mettez le résultat du jugement logique d'autorisation dans les données json et renvoyez-le au front-end Le front-end peut-il l'utiliser directement ?

BooksController
    editAction($id){
        ...
        $book = ....;
        $user = Auth::user()/Null//;登陆用户或没有登陆的匿名游客用户;
        // 授权判断, 返回1或者0
        $canEdit = $user->hasPermission('edit-book');
                   $acl->isAllowed($user, $book, 'edit-book');   
        return new JsonResponse([
            'book'=>$book,
            'user'=>$user,
            'can_edit'=>$canEdit,
            ........
        ]);
    }

3) En utilisant Emberjs, un framework mvc frontal très similaire au back-end, en particulier lorsqu'il existe un composant ORM complet de classe ember-data, les données/modèles ember front-end doivent-ils être simplement mappé avec le back-end ? Comment les parties authentification et autorisation des problèmes de sécurité sont-elles gérées ?

某草草某草草2831 Il y a quelques jours650

répondre à tous(1)je répondrai

  • 高洛峰

    高洛峰2017-05-15 17:05:17

    Les projets avec lesquels j'ai été en contact utilisent "Méthode 2) Mettre les résultats du jugement logique d'autorisation dans les données json, les renvoyer au front-end, et le front-end l'utilise directement ?" les autorisations détenues par l'utilisateur, puis le front-end rend le jugement. Cependant, je pense que la sécurité sera réduite de cette manière si le résultat du retour est falsifié, les autorisations du front-end seront détruites, mais c'est le cas. possible uniquement si la définition de la règle est connue.

    répondre
    0
  • Annulerrépondre