Tại sao phải nên ưu tiên xài Authorization built-in trong Framework

Tại sao phải nên ưu tiên xài Authorization built-in trong Framework

Hello all,

Nay chúng ta qua chém gió về vấn đề cũng khá là vui vẻ – Authorization.

Cũng là 1 bài nho nhỏ ngắn gọn thoy hehe.

1/ Authorization là gì?

Là một phương pháp để xác thực xem user hiện tại có quyền truy cập vào 1 thứ specific gì đó ko (pages, actions,…)

Về bản chất, Authorization chỉ cần thiết khi User đã dc Authenticated  (User đã đăng nhập vào hệ thống). Còn bình thường thì bạn chẳng biết ai là ai mà cho quyền và check quyền hehe.

Authorization Rules được tạo ra để phục vụ tùy mục đích của System của bạn. Ví dụ:

  • Có phải Admin?
  • Có quyền C/R/U/D?
  • Có được ABC XYZ gì ko?

Mix up hết mọi thứ và returns về 1 boolean để check và cho phép truy cập nếu true và báo lỗi nếu false hehe.

2/ Tại sao phải xài Authorization Built-in trong Framework?

Đơn giản các lý do sau:

  • Support đầy đủ và well-documented
  • ĐƯỢC viết Unit Tests và TESTED đầy đủ từ Contributors
  • Được improve, upgrade, security updates thường xuyên từ Contributors
  • EXTEND dễ dàng
  • Được sử dụng features của Framework => best practice

Có rất nhiều lý do mà nó hơn tất cả những spaghetti-authorization tự build inhouse của project của bạn.

Điểm bất lợi của Inhouse Authorization:

  • Tỷ lệ cao là ko viết Unit Tests
  • 1 inhouse project dữ lắm là tầm chục testers test. Built-in Framework dc toàn bộ người trên thế giới test và báo lỗi, improvements, suggestions,…
  • Documentation đa phần không đầy đủ (thậm chí ko có), người mới vào mà học là SML
  • Vân vân và mây mây

Vậy nên, bạn hãy ưu tiên sử dụng Authorization của Framework, và ngay cả có special cases mà chưa đáp ứng được, bạn vẫn có thể extend từ framework 1 cách dễ dàng.

Những frameworks lớn đều có đầy đủ vấn đề này, ví dụ: Spring Boot, Laravel,…

3/ Laravel có Authorization ko?

Có từ lâu hehe, Documentation đầy đủ: https://laravel.com/docs/8.x/authorization

Về cơ bản thì ta có thể viết các Policies, và từ policies ta có thể thực thi Authorization trong:

  • Middleware
    • Lưu ý: Custom Rules nên ưu tiên check ở Request
  • Request
  • Controller
  • View

4/ Conclusion

Kết luận cũng như phần 2, Built-in Authorization over Custom-Built Authorization

Thanks for reading!!

#backend #authorization #vippro

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook