@@EasyFrontend thật đó anh. Em bị chặn cứ đăng kí là nó chặn.. Nên em mới suy nghĩ là nó đâu biết mình bằng da thịt đâu sao lại biết cái em mới suy luận là nó dựa trên IP với thiết bị. Chỉ có 2 cách là cài lại hệ điều hành và reset modum thiết lại luôn từ đầu là pass. 100% pass :D
hhaaa hợp lý rồi Thảo ơi. Phần này mà đào sâu xuống thì ôi nó phức tạp dã man 😉 Mong có bạn BE nào đó có thể explain details bên dưới phần này cho ae tham khảo hihi
hi Cường, cái này nó hơi mong lung khó xác định nè. Theo anh thì em cứ cố gắng làm được nhiều nhất có thể. Từ một UI có thể biến thành reactjs component, gắn API rồi quản lý state cho application các kiểu là okie 😉
@@EasyFrontend hiện giờ e có thể quản lí state với redux rồi. cũng có thể tự tạo API và dùng Reactjs để kết nối rồi lấy dữ liệu về r. chắc đủ để xin fresher a nhỉ
hay quá anh ơi. cuối cùng anh cũng ra phần này rồi. anh cho em hỏi là mình lấy token trong localStorage trong react để vào trong redux xử lý hay lấy trực tiếp trong action redux luôn ạ.
@@EasyFrontend dạ. Cái gửi token kèm request thì em có hiểu được cơ chế rồi ạ. Em chưa làm việc trong môi trường dự án thật hay đi thực tập bao giờ ạ. Cho em hỏi là khi mình lấy token trên local để gửi kèm request. Thì trong react component và trong redux action đều có thể gọi lên local storage được ạ. Vậy mình gọi ở đâu là hợp lý nhất ạ.em đặt ra câu hỏi cũng hơi kiểu khó hiểu. Anh thông cảm ạ. Nhưng mà không biết nói sao cho anh hiểu nữa.😂😂😂
Cảm ơn anh nhiều lắm ạ! Em cứ bị nhầm lẫn 2 thằng này suốt. Nhờ video của anh ví dụ thực tế, dễ hiểu quá nên hy vọng sau này sẽ không còn nhầm nữa. ^ ^
yeah đúng òi Phúc ơi. Cụ thể như sau: 1. Em đăng nhập vào hệ thống (Authentication), hệ thống trả về cho em cái token. 2. Client giữ token đó. 3. Client muốn lấy dữ liệu, gửi kèm token lên server 4. Server check token xem có đủ permission ko? (Authorization). Nếu có thì trả về dữ liệu cho em. Không thì báo lỗi hehe
Author làm ở be để be gửi jwt cho fe. Fe check xem có jwt ko để cho phép user vào những private route, bên cạnh cũng dùng jwt để mỗi lần ajax về be, be sẽ check xem có jwt ko, nếu có mới thực hiện cv và phản hồi về fe, nếu ko thì gửi 403 forbidden
Dung Huynh hi Dung, thông thường sau khi có token, em sẽ gọi thêm một api getMe để lấy đầy đủ thông tin của user login hiện tại trong đó có cả quyền của user, từ đó mà em check permission show cái tương ứng nha 🙂
A ơi e có làm đồ án và lưu cái token dưới localstorage : 1. Nếu ngta copy qua cái token qua máy khác thì có đăng nhập hay làm những thứ khác đc k ạ 2. Nếu đc thì có cách nào mã hóa cái token kiểu như refresh token hay nao khác k ạ Cảm ơn những video bổ ích của a ạ!
hi Hậu ơi, nếu mà mình tự copy token cho người khác thì bó tay nhé em hihi, hoặc mình add thêm một bước nữa là chỉ cho phép token đó sử dụng trên thiết bị đó thôi, nếu thấy xài token trên thiết bị khác thì reject em hen, cái này xử lý bên Backend nè 😉
cho em hỏi mỗi lần thằng user nó gửi request lên thì server chỉ verifyToken để lấy decode thôi hay phải check lại cả trong csdl, vì có trường hợp người dùng có JWT rồi mới bị xoá hoặc mới bị block thì nếu ko check lại csdl thì những người dùng đó vẫn truy cập nhởn nhơ được
Thường thì backend sẽ lấy lại từ db. Cái token chỉ lưu vài thông tin cực kì cơ bản thôi, ví dụ như userId (không lưu những cái private như permission, password, ...)
hi Mạnh, mình có một vài notes cho Mạnh nè 1. BE thường chỉ check token thôi, ko cần phải query lại database nhé. Vì trên token có thông tin của thời gian expired của token nên dựa vào đó là đủ check rồi nè. 2. Về phần roles/permissions thì cũng thường được add vào token luôn, nhưng lưu ý nếu 1 user có quá nhiều roles/permissions thì lúc đó có khả năng xảy ra tình trạng token quá dài và server sẽ bị lỗi khi parse mấy cái header đó. Nên lúc này người ta sẽ ko lưu vào token mà phải chịu khó lên server query lại roles/permissions 🙂
Easy Frontend em cảm ơn mà em vẫn chưa thông lắm với 1 vài trường hợp, ví dụ máy A và máy B cùng đăng nhập 1 tk, cả 2 cùng có token sau khi đăng nhập thành công, nhưng máy A đã đổi mk, vậy xử lý sao cho phù hợp để máy B có token cũng ko truy cập được nữa
Yeah vậy là video đầu tiên trong chuỗi Auth đã xuất bản.
Qua video này, bạn có hiểu thế nào là Authentication và Authorization không nhỉ? 😉
Anh dạy nghe rất vui vẻ, cảm ơn anh 🌹🌹🌹
yeahhh cảm ơn em nhiều nhiều nhé Hiệp 😊
Authentication (Xác thực - Chứng thực): Xác định bạn là ai trong hệ thống.
Authorization (Ủy quyền - Được quyền): Bạn có quyền gì trong hệ thống đó.
nghe mấy cái liên quan đến bảo mật nghe cả ngày ko chán 😂
haha phải chi có ai chuyên gia về phần security nói nghe hay lắm, tiếc là anh ko mảng security, chỉ nắm được phần cơ bản à 😭
Easy Frontend em mong nắm được hết những cái anh sắp dạy cả trong video jwt sắp tới là tốt lắm rồi ạ 😋
xưa em bị danh tính fb chặn, em đã có cách phá token facebook rồi :D
lol vậy luôn =)))
@@EasyFrontend thật đó anh. Em bị chặn cứ đăng kí là nó chặn.. Nên em mới suy nghĩ là nó đâu biết mình bằng da thịt đâu sao lại biết cái em mới suy luận là nó dựa trên IP với thiết bị. Chỉ có 2 cách là cài lại hệ điều hành và reset modum thiết lại luôn từ đầu là pass. 100% pass :D
thấy video a là bay vào xem liền
hehe fan cứng của kênh, cảm ơn em nhiều nha Quang ơi 😍
ôi Hóng video tiếp theo quá. lâu ko quay lại. vidao nào cũng hay và bổ ích lắm
yeahhh cảm ơn em nhiều Shen ơi! 😍 A đang gom thêm tài liệu về JWT để làm video tiếp theo hehe
anh nói rất zễ hiểu. mong anh ra phần tiếp theo sớm... cảm ơn anh...
yeahhhh cảm ơn em nhiều Tùng ơi 😍 A đang soạn nội dung cho video tiếp theo, hi vọng sẽ có sớm cho mn tham khảo hihi
âm thầm ủng hộ anh 😎
yeahhhh cảm ơn em nhiều Kiên ơiiiiiiii ❤️
Anh ơi, tìm hiểu sang phần này thì mình phải biết qua về Redux trước à anh ^^
hi Lộc, phần này em có thể hiểu mà ko cần redux em nhen hehe
Ủng hộ anh ngày càng ra nhiều clip hay như v !! Thích cách anh giảng bài !!
wohoo cảm ơn em nhiều nhé Khang ơi! 😉 A sẽ tiếp tục làm thêm videos cho mn tham khảo nha hehe
Thanks
❤️
Làm luôn về SSO đi a :)
hahaa topic hay nè, để dành đó, hôm nào có dịp xúc hen hehee
@@EasyFrontend xúc luôn đi anh
Biết làm là một chuyện. Làm như thế nào cho đúng là chuyện khác.Haha. Rối hơn mình nghĩ nhiều
hhaaa hợp lý rồi Thảo ơi. Phần này mà đào sâu xuống thì ôi nó phức tạp dã man 😉 Mong có bạn BE nào đó có thể explain details bên dưới phần này cho ae tham khảo hihi
a ơi cho e hỏi kiến thức Reactjs thế nào là đủ để xin được Fresher hoặc junior vậy ạ
hi Cường, cái này nó hơi mong lung khó xác định nè. Theo anh thì em cứ cố gắng làm được nhiều nhất có thể. Từ một UI có thể biến thành reactjs component, gắn API rồi quản lý state cho application các kiểu là okie 😉
@@EasyFrontend hiện giờ e có thể quản lí state với redux rồi. cũng có thể tự tạo API và dùng Reactjs để kết nối rồi lấy dữ liệu về r. chắc đủ để xin fresher a nhỉ
Học giả cảm ơn tác giả !
A ra series về redux-saga đi anh!!!!!!!!!!!!!!!!!!!!!!!!!
haha rồi rồi, nó sắp ra rồi, em yên tâm nhé Đạt. Video tiếp theo nói về js generator, khởi động cho saga nha hehe 😉
hay quá anh ơi. cuối cùng anh cũng ra phần này rồi. anh cho em hỏi là mình lấy token trong localStorage trong react để vào trong redux xử lý hay lấy trực tiếp trong action redux luôn ạ.
hi Dũng ơi, phần token mình sẽ gắn vào trong requests ở axiosClient nha Dũng 😉
@@EasyFrontend dạ. Cái gửi token kèm request thì em có hiểu được cơ chế rồi ạ. Em chưa làm việc trong môi trường dự án thật hay đi thực tập bao giờ ạ. Cho em hỏi là khi mình lấy token trên local để gửi kèm request. Thì trong react component và trong redux action đều có thể gọi lên local storage được ạ. Vậy mình gọi ở đâu là hợp lý nhất ạ.em đặt ra câu hỏi cũng hơi kiểu khó hiểu. Anh thông cảm ạ. Nhưng mà không biết nói sao cho anh hiểu nữa.😂😂😂
cái này chỉ 1 làm bên backend hoặc chỉ làm 1 bên frontend thì có được k ạ
hi Dũng ơi, cái này thì ko được nhé, phải kết hợp cả 2 bên mới được nè 🙂
Cảm ơn anh nhiều lắm ạ! Em cứ bị nhầm lẫn 2 thằng này suốt.
Nhờ video của anh ví dụ thực tế, dễ hiểu quá nên hy vọng sau này sẽ không còn nhầm nữa. ^ ^
yeah hay quá Hà ơi, tới thời điểm này thì tới lượt anh quên mất 2 khái niệm này là gì rồi 🤣
*Phần này khi check đăng nhập thành công có token thì check token để làm privateRouter pải hông a Hậu?*
yeah đúng òi Phúc ơi. Cụ thể như sau:
1. Em đăng nhập vào hệ thống (Authentication), hệ thống trả về cho em cái token.
2. Client giữ token đó.
3. Client muốn lấy dữ liệu, gửi kèm token lên server
4. Server check token xem có đủ permission ko? (Authorization). Nếu có thì trả về dữ liệu cho em. Không thì báo lỗi hehe
Anh cho em hỏi, phần authorization ở phía frontend thì người ta hay dùng gì vậy anh?
hi Dung ơi, phần authorization mình làm bên phía BE nhé. Còn FE thì ko có làm nè 😉
Author làm ở be để be gửi jwt cho fe. Fe check xem có jwt ko để cho phép user vào những private route, bên cạnh cũng dùng jwt để mỗi lần ajax về be, be sẽ check xem có jwt ko, nếu có mới thực hiện cv và phản hồi về fe, nếu ko thì gửi 403 forbidden
Anh ơi, như khi ở frontend một số route chỉ hiển thị cho những người dùng có quyền, vậy những quyền đó mình lấy ở jwt à anh
Dung Huynh hi Dung, thông thường sau khi có token, em sẽ gọi thêm một api getMe để lấy đầy đủ thông tin của user login hiện tại trong đó có cả quyền của user, từ đó mà em check permission show cái tương ứng nha 🙂
A ơi e có làm đồ án và lưu cái token dưới localstorage :
1. Nếu ngta copy qua cái token qua máy khác thì có đăng nhập hay làm những thứ khác đc k ạ
2. Nếu đc thì có cách nào mã hóa cái token kiểu như refresh token hay nao khác k ạ
Cảm ơn những video bổ ích của a ạ!
hi Hậu ơi, nếu mà mình tự copy token cho người khác thì bó tay nhé em hihi, hoặc mình add thêm một bước nữa là chỉ cho phép token đó sử dụng trên thiết bị đó thôi, nếu thấy xài token trên thiết bị khác thì reject em hen, cái này xử lý bên Backend nè 😉
cho em hỏi mỗi lần thằng user nó gửi request lên thì server chỉ verifyToken để lấy decode thôi hay phải check lại cả trong csdl, vì có trường hợp người dùng có JWT rồi mới bị xoá hoặc mới bị block thì nếu ko check lại csdl thì những người dùng đó vẫn truy cập nhởn nhơ được
Thường thì backend sẽ lấy lại từ db. Cái token chỉ lưu vài thông tin cực kì cơ bản thôi, ví dụ như userId (không lưu những cái private như permission, password, ...)
hi Mạnh, mình có một vài notes cho Mạnh nè
1. BE thường chỉ check token thôi, ko cần phải query lại database nhé. Vì trên token có thông tin của thời gian expired của token nên dựa vào đó là đủ check rồi nè.
2. Về phần roles/permissions thì cũng thường được add vào token luôn, nhưng lưu ý nếu 1 user có quá nhiều roles/permissions thì lúc đó có khả năng xảy ra tình trạng token quá dài và server sẽ bị lỗi khi parse mấy cái header đó. Nên lúc này người ta sẽ ko lưu vào token mà phải chịu khó lên server query lại roles/permissions 🙂
Easy Frontend em cảm ơn mà em vẫn chưa thông lắm với 1 vài trường hợp, ví dụ máy A và máy B cùng đăng nhập 1 tk, cả 2 cùng có token sau khi đăng nhập thành công, nhưng máy A đã đổi mk, vậy xử lý sao cho phù hợp để máy B có token cũng ko truy cập được nữa
A làm về mấy cái useParams, useHistory, useLocation,... của react router hook đi, đang cần gấp lắm a à =))
hihi hình như a có làm rồi thì phải Vững ơi, trong mấy video về redux, mà a quên video nào rồi =)))
Anh dạy rất dễ hiểu, mong anh sớm ra video mới
yeahhh cảm ơn em nhiều nha Đức ơi, chắc 1, 2 bữa nữa sẽ có video mới nè hehe
Cái này về bên backend luôn hả anh, backend anh dùng ngôn ngữ gì vậy anh
hi Nam, cái này là principle chung, không có cụ thể một ngôn ngữ nào nhé 😉
Đã phân biệt được :D
nghe title rối rối >.
haha topic này nó có phần rối thiệt đó Minh 😅