Hướng dẫn installing php jwt - cài đặt php jwt
Lời mở đầuMô hình client server -- WEB API hẳn không còn lạ lùng gì với chúng ta nữa , hiện nay việc sự dụng API giờ trở nên phổ biến và rất cần thiết đối với sự phát triển của các website qui mô và uy tín . Tuy nhiên, một vấn đề đặt ra đó là việc xác thực khi sử dụng các API vì khi sử dụng API chúng ta cần sử dụng rất nhiều API để lấy các nguồn thông tin cần thiết và vấn đề ở đây là không phải ai cũng có quyền sử dụng tất cả các nguồn thông tin ... Và giải pháp ở đây chính là 7Trong bài viết ngày hôm nay, mình sẽ không giới thiệu về 7 nữa, nếu cần tìm hiểu thêm các bạn có thể vào đây để biết thêm chi tiết ... Bài viết này mình sẽ nói rõ ràng về cách setup cũng như sử dụng 7 trong laravel .Nào, giờ thì LET GO =) I : Cài đặtĐể cài đặt được package này điêu kiện tiên quyết là chúng ta phải có server chạy được :
Đầu tiên, bạn cần load source thông qua composer bằng cách sửa mục 0 trong file 1 :
rồi chạy lệnh 2 hoặc bạn chỉ cần chạy lệnh 3 là có thể kéo source về app của mình.Sau khi source đã kéo về hoàn tất, bạn cần thêm service provider vào mảng 4 trong file config 5 theo mẫu sau :Laravel 4
Laravel 5+
Sau đó, cũng tại file đó, bạn tìm đến mảng 6 bạn cũng có thể thêm các facade của thằng 7 vào đây :Laravel 4 :
Laravel 5+ :
Cuối cùng bạn cần phải publish config của 7, bằng cách chạy lệnh sau đậy :Larave 4:
Laravel 5 +:
Và cuối cùng, đương nhiên bạn không thể quên setup secret key cho thằng 7 này rồi ... Và nếu bạn không có key nào để setuo thì có thể tạo 1 key ngâu nghiên với lệnh sau :
NOTE :
Ok, việc setup có vẻ ổn rồi đấy . II : Sửa thông tin trong file configSecret Key - 0Đương nhiên đây là 1 key giúp bạn mã hóa chuỗi token của app ... Sau khi setup như các bước bên trên nó sẽ có dạng :
Như mình đã nói ở trên, bạn có thể tự add key khác vào nếu có hoặc nếu không thì bạn có thể vào file 1 thêm 1 key 2 và setup key vào đấy (mình chọn cách này vì nếu quản lý file bằng git thì ta ko thể công khai key này lên githup được, vì vậy tất cả đều cho vào file 1 là an toàn và bảo mật nhất).Token time to live - 4Như cái tên của nó, đây là thời gian mà token của bạn có hiệu lực (tính bằng phút), khi bạn tạo ra 1 token thì chỉ có hiệu lực trong 1 thời gian nhất định tính từ thời điểm tạo token (Khuyến khích của nhà phát triển là thời gian này càng ngắn càng tốt) : Default : 0Refresh time to live- 5Đây là thời gian (tính bằng phút) bạn có thể tạo mới một token khác từ token cũ mà ko cần xác thực lại... Nói thì có vẻ hơi trừu tượng, bạn có thể hiểu như sau : Khi bạn xác thực và tạo ra 1 token có thời gian có hiệu lực của nó là 60 phút ... Nếu bạn chỉ sử dụng dưới 60 phút thì chả có vấn đề gì cả .Tuy nhiên, nếu bạn sử dụng liên tục trong 90p thì đến phút thứ 60 token của bạn sẽ hết hạn và đánh bật bạn và yêu cầu đăng nhập lại , điều này nghe có vẻ không thân thiện cho người dùng nên nó sinh ra khái niệm 5 ... Tạo ra token mới từ token cũ trong 1 thời gian xác định ...
Default : 1Refresh time to live- 7Đây là thời gian (tính bằng phút) bạn có thể tạo mới một token khác từ token cũ mà ko cần xác thực lại... Nói thì có vẻ hơi trừu tượng, bạn có thể hiểu như sau : Khi bạn xác thực và tạo ra 1 token có thời gian có hiệu lực của nó là 60 phút ... Nếu bạn chỉ sử dụng dưới 60 phút thì chả có vấn đề gì cả .Tuy nhiên, nếu bạn sử dụng liên tục trong 90p thì đến phút thứ 60 token của bạn sẽ hết hạn và đánh bật bạn và yêu cầu đăng nhập lại , điều này nghe có vẻ không thân thiện cho người dùng nên nó sinh ra khái niệm 5 ... Tạo ra token mới từ token cũ trong 1 thời gian xác định ...Default : 2Refresh time to live- 5Đây là thời gian (tính bằng phút) bạn có thể tạo mới một token khác từ token cũ mà ko cần xác thực lại... Nói thì có vẻ hơi trừu tượng, bạn có thể hiểu như sau : Khi bạn xác thực và tạo ra 1 token có thời gian có hiệu lực của nó là 60 phút ... Nếu bạn chỉ sử dụng dưới 60 phút thì chả có vấn đề gì cả .Tuy nhiên, nếu bạn sử dụng liên tục trong 90p thì đến phút thứ 60 token của bạn sẽ hết hạn và đánh bật bạn và yêu cầu đăng nhập lại , điều này nghe có vẻ không thân thiện cho người dùng nên nó sinh ra khái niệm 8 Đường dẫn trỏ đến model mà bạn sử dụng để xác thựcDefault : 3Refresh time to live- 5Đây là thời gian (tính bằng phút) bạn có thể tạo mới một token khác từ token cũ mà ko cần xác thực lại... Nói thì có vẻ hơi trừu tượng, bạn có thể hiểu như sau : Khi bạn xác thực và tạo ra 1 token có thời gian có hiệu lực của nó là 60 phút ... Nếu bạn chỉ sử dụng dưới 60 phút thì chả có vấn đề gì cả .Tuy nhiên, nếu bạn sử dụng liên tục trong 90p thì đến phút thứ 60 token của bạn sẽ hết hạn và đánh bật bạn và yêu cầu đăng nhập lại , điều này nghe có vẻ không thân thiện cho người dùng nên nó sinh ra khái niệm 9Hashing algorithm - 7Default : 4Refresh time to live- 4 Đây là các claims bắt buộc phải có (do bạn định
nghĩa) trong token payload bạn định nghĩa, nếu ko thì 1 Exception là 5 sẽ được đẩy raDefault : 5Refresh time to live- 6 Mặc đinh của config này chính là 7, nó giúp bạn vô hiệu hoá các token cũ (vẫn còn thời hạn hiệu lực) khi mà bạn sử dụng token đó để tạo ra 1 token mới ... Hiển nhiên điều này là cần thiết vì 1 user mà sử dụng nhiều token cùng 1 lúc khá là nguy hiểm, tuy nhiên nếu bạn cảm thấy không cần thiết thì vẫn có thể set là 8 .
Default : 6Providers - 9Đây là một mảng bao gồm cacis provider mà package sử dụng để lấy dữ liệu hoặc xử lý các tác vụ ... Tất nhiên, bạn cũng thể tự định nghĩa các provice khác vào đây miễn là tương thích vs các cúc năng (Vụ này cần vào vọc code cho kỹ rồi hãy custom nhé) OK, đến đây thôi nhé ! Trong bai viết sau mình sẽ nói các bạn cụ thể hơn về cách tạo token, refress token , các event của token và đưa ra 1 ví dụ cụ thể hơn về ứng dụng token này. TÀI LIỆU THAM KHẢO
|