Rumah > Soal Jawab > teks badan
Bagaimanakah bahagian hadapan mengendalikan logik keizinan apabila bahagian hadapan dan bahagian belakang dipisahkan (mv bahagian hadapan dan hujung belakang*)?
(mv* mungkin mvc, mtv, atau mvvm, dsb.)
Belakang:
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)
Pengawal/tindakan belakang belakang dan operasi lain biasanya menggunakan sistem kebenaran seperti acl/rbac untuk membuat keputusan kebenaran.
Persoalannya ialah:
Bagaimanakah rangka kerja mv* bahagian hadapan seperti Emberjs, Angularjs, dll. mengendalikan bahagian kebenaran?
Sebagai contoh, jika anda tidak log masuk (melayari pengguna), anda akan melihat 10 artikel, dan jika anda log masuk, anda akan melihat lebih banyak kandungan.
Cara 1) Seperti bahagian belakang, gunakan sistem kebenaran/logik kebenaran yang berasingan untuk mengendalikan perkara ini?
Kaedah 2) Letakkan keputusan logik kebenaran ke dalam data json dan kembalikan ke hujung hadapan Bolehkah bahagian hadapan menggunakannya secara langsung?
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) Menggunakan Emberjs, rangka kerja mvc bahagian hadapan yang hampir sama dengan bahagian belakang, terutamanya apabila terdapat komponen ORM kelas data bara yang lengkap, adakah data/model bara api bahagian hadapan perlu sudah dipetakan dengan bahagian belakang? Bagaimanakah bahagian pengesahan dan kebenaran isu keselamatan dikendalikan?
高洛峰2017-05-15 17:05:17
Projek yang saya telah hubungi menggunakan "Kaedah 2) Letakkan keputusan logik kebenaran ke dalam data json dan kembalikan ke bahagian hadapan. Bahagian hadapan menggunakannya secara langsung? kebenaran yang dimiliki oleh pengguna, dan kemudian bahagian hadapan membuat pertimbangan Walau bagaimanapun, saya merasakan bahawa keselamatan akan dikurangkan dalam kes ini Jika hasil pemulangan diganggu, kebenaran bahagian hadapan akan dimusnahkan, tetapi ini hanya mungkin jika definisi peraturan diketahui.