国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angular.js - 前後端分離(前後端mv*),前端如何處理授權(quán)需求(授權(quán)邏輯)呢?
某草草
某草草 2017-05-15 17:03:17
0
1
724

前後端分離(前後端mv*)的情況下,前端如何處理授權(quán)邏輯?
(mv* 可能是mvc,也可能是mtv, 或是mvvm等等)

後端:

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

後端的controller/action等操作通常使用acl/rbac等授權(quán)系統(tǒng)做出授權(quán)判斷。

問(wèn)題是:
像Emberjs、Angularjs等前端mv*框架如何處理授權(quán)部分呢?
例如未登陸(瀏覽用戶(hù))明確10篇文章, 登陸用戶(hù)明確更多內(nèi)容。

方式1)像後端一樣,使用單獨(dú)的授權(quán)系統(tǒng)/授權(quán)邏輯來(lái)處理嗎?

方式2)把 授權(quán)邏輯判斷結(jié)果放到j(luò)son資料裡面,回給前端,前端直接使用?

BooksController
    editAction($id){
        ...
        $book = ....;
        $user = Auth::user()/Null//;登陸用戶(hù)或沒(méi)有登陸的匿名游客用戶(hù);
        // 授權(quán)判斷, 返回1或者0
        $canEdit = $user->hasPermission('edit-book');
                   $acl->isAllowed($user, $book, 'edit-book');   
        return new JsonResponse([
            'book'=>$book,
            'user'=>$user,
            'can_edit'=>$canEdit,
            ........
        ]);
    }

3)使用Emberjs這種和後端極為相似的前端mvc框架,尤其是有完整的ember-data類(lèi)別orm元件的時(shí)候, 前端ember-data/model是不是要跟後端簡(jiǎn)單映射一下就可以了? 安全問(wèn)題的認(rèn)證和授權(quán)2個(gè)部分如何處理的呢?

某草草
某草草

全部回覆(1)
小葫蘆

接觸過(guò)的項(xiàng)目是使用"方式2)把授權(quán)邏輯判斷結(jié)果放到j(luò)son數(shù)據(jù)裡面,返回給前端,前端直接使用?" 的,就是後端返回用戶(hù)擁有的權(quán)限,然後前端去做判斷,不過(guò)我感覺(jué)這樣的話(huà)安全性是不是就降低了,如果篡改了返回結(jié)果的話(huà)前端的權(quán)限就被破壞掉了,不過(guò)是在知道規(guī)則定義的情況下才可能。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板