[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-menu":3,"site-settings":14,"tag-jwt-auth":21},{"items":4},[5,8,11],{"href":6,"label":7},"\u002F","Mới nhất",{"href":9,"label":10},"\u002Fcategory\u002Fdich-vu","Dịch vụ",{"href":12,"label":13},"\u002Fabout","Về tôi",{"siteName":15,"siteDescription":16,"contactEmail":17,"phone":18,"githubUrl":19,"facebookUrl":20},"vdhoangson.com","Ghi chép về lập trình, hệ thống và những điều học được trên đường làm sản phẩm.","contact@vdhoangson.com","+84 387 324 112","https:\u002F\u002Fgithub.com\u002Fvdhoangson","",{"items":22,"total":65,"page":65,"pageSize":66},[23],{"id":24,"wordpressId":25,"title":26,"slug":27,"excerpt":28,"contentHtml":29,"status":30,"authorName":31,"seoTitle":26,"seoDescription":28,"featuredMediaId":32,"featuredMedia":33,"categories":46,"tags":57,"publishedAt":63,"createdAt":63,"updatedAt":64},"5c54b58d-b689-47c3-bcce-51cc1b7983f2",16363,"Cuộc đại chiến giữa hai môn phái: Session Auth vs JWT Auth","cuoc-dai-chien-giua-hai-mon-phai-session-auth-vs-jwt-auth","I. Bôn tẩu giang hồ Từ thuở giang hồ còn sơ khai, các ứng dụng web cổ điển sử dụng Session Auth — một môn phái lâu đời, đơn giản, hiệu quả.Nhưng rồi, khi thế giới SPA (Single Page Application) và API trỗi dậy, một môn phái mới xuất hiện: JWT Auth — gọn gàng, […]","\n\u003Ch2 class=\"wp-block-heading\">I. Bôn tẩu giang hồ\u003C\u002Fh2>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Từ thuở giang hồ còn sơ khai, các ứng dụng web cổ điển sử dụng \u003Cstrong>Session Auth\u003C\u002Fstrong> — một môn phái lâu đời, đơn giản, hiệu quả.\u003Cbr \u002F>Nhưng rồi, khi thế giới SPA (Single Page Application) và API trỗi dậy, một môn phái mới xuất hiện: \u003Cstrong>JWT Auth\u003C\u002Fstrong> — gọn gàng, tự do, hành tẩu khắp thiên hạ không cần server nhớ mặt.\u003C\u002Fp>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Hai phái tuy khác đường, nhưng đều hướng tới một mục tiêu: \u003Cstrong>xác thực danh tính người dùng\u003C\u002Fstrong>.\u003Cbr \u002F>Vậy ai là cao thủ đệ nhất thiên hạ? Hãy cùng ta luận một hồi!\u003C\u002Fp>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\" \u002F>\n\n\n\n\u003Ch2 class=\"wp-block-heading\">II. \u003Cstrong>Tuyệt kỷ của từng môn phái\u003C\u002Fstrong>\u003C\u002Fh2>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">Phái Session Auth – “Truyền thống chính tông”\u003C\u002Fh3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>Nguyên lý:\u003C\u002Fstrong>\u003Cbr \u002F>Khi người dùng đăng nhập, server tạo một “session” lưu trong bộ nhớ hoặc database.\u003Cbr \u002F>Một “token bí mật” (session ID) được gửi về trình duyệt, lưu trong \u003Cstrong>cookie\u003C\u002Fstrong>.\u003Cbr \u002F>Từ đó, mỗi lần người dùng gửi request, cookie ấy giúp server nhận ra họ.\u003C\u002Fp>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>Vũ khí bí truyền:\u003C\u002Fstrong>\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\n\u003Cli>\u003Ccode>php artisan make:auth\u003C\u002Fcode> – thần công tự động hoá.\u003C\u002Fli>\n\n\n\n\u003Cli>\u003Ccode>Illuminate\\Session\u003C\u002Fcode> – nội công thâm hậu.\u003C\u002Fli>\n\n\n\n\u003Cli>\u003Ccode>csrf_token()\u003C\u002Fcode> – hộ thân pháp tránh bị tấn công CSRF.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\" \u002F>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">Phái JWT Auth – “Hiệp khách giang hồ tự do”\u003C\u002Fh3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>Nguyên lý:\u003C\u002Fstrong>\u003Cbr \u002F>Khi người dùng đăng nhập, server trả về một \u003Cstrong>JWT (JSON Web Token)\u003C\u002Fstrong> – chứa thông tin mã hoá (payload).\u003Cbr \u002F>Token này đi theo mọi request (thường nằm trong header \u003Ccode>Authorization: Bearer &lt;token&gt;\u003C\u002Fcode>).\u003Cbr \u002F>Server không cần lưu gì cả – chỉ cần \u003Cstrong>xác minh chữ ký\u003C\u002Fstrong> là biết thật giả.\u003C\u002Fp>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Cstrong>Vũ khí bí truyền:\u003C\u002Fstrong>\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\n\u003Cli>\u003Ccode>tymon\u002Fjwt-auth\u003C\u002Fcode> – bí kíp phổ biến trong Laravel.\u003C\u002Fli>\n\n\n\n\u003Cli>\u003Ccode>firebase\u002Fphp-jwt\u003C\u002Fcode> – bảo vật do tiền nhân Google để lại.\u003C\u002Fli>\n\n\n\n\u003Cli>Header \u003Ccode>Authorization\u003C\u002Fcode> – như lệnh bài của triều đình, đi đến đâu cũng có hiệu lực.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\" \u002F>\n\n\n\n\u003Ch2 class=\"wp-block-heading\">III. \u003Cstrong>So sánh chiêu thức\u003C\u002Fstrong>\u003C\u002Fh2>\n\n\n\n\u003Cfigure class=\"wp-block-table\">\u003Ctable class=\"has-fixed-layout\">\u003Cthead>\u003Ctr>\u003Cth>Đặc điểm\u003C\u002Fth>\u003Cth>\u003Cstrong>Session Auth\u003C\u002Fstrong>\u003C\u002Fth>\u003Cth>\u003Cstrong>JWT Auth\u003C\u002Fstrong>\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Cstrong>Lưu trữ\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Trên server (session store, Redis, DB…)\u003C\u002Ftd>\u003Ctd>Trên client (localStorage, cookie, memory…)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Trạng thái (state)\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Có trạng thái (stateful)\u003C\u002Ftd>\u003Ctd>Không trạng thái (stateless)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Phù hợp cho\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Web truyền thống (Blade, Livewire…)\u003C\u002Ftd>\u003Ctd>SPA, Mobile app, API đa nền tảng\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Tốc độ\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Cần truy xuất session mỗi lần\u003C\u002Ftd>\u003Ctd>Nhanh hơn vì không truy DB\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Bảo mật\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Tốt với cookie + HTTPS\u003C\u002Ftd>\u003Ctd>Dễ lộ token nếu không cẩn thận\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Gia hạn phiên (refresh)\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Tự động qua cookie\u003C\u002Ftd>\u003Ctd>Cần cơ chế refresh token thủ công\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Logout\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Dễ – chỉ xoá session\u003C\u002Ftd>\u003Ctd>Phức tạp – phải vô hiệu hóa token\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Triển khai\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Dễ, Laravel hỗ trợ sẵn\u003C\u002Ftd>\u003Ctd>Cần setup thêm package và cấu hình\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cstrong>Kiểm soát người dùng online\u003C\u002Fstrong>\u003C\u002Ftd>\u003Ctd>Dễ (dựa vào session table)\u003C\u002Ftd>\u003Ctd>Khó hơn – token không lưu trạng thái\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\n\n\n\n\u003Ch2 class=\"wp-block-heading\">IV. \u003Cstrong>Khi nào nên dùng?\u003C\u002Fstrong>\u003C\u002Fh2>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">\u003Cstrong>Session Auth – Dành cho đệ tử nội môn\u003C\u002Fstrong>\u003C\u002Fh3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Dùng khi:\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\n\u003Cli>Ứng dụng chủ yếu là \u003Cstrong>web truyền thống\u003C\u002Fstrong> (Laravel Blade, Inertia, Livewire).\u003C\u002Fli>\n\n\n\n\u003Cli>Hệ thống cần quản lý phiên đăng nhập chặt chẽ, ví dụ \u003Cstrong>admin panel, cổng nội bộ\u003C\u002Fstrong>.\u003C\u002Fli>\n\n\n\n\u003Cli>Muốn tận dụng bảo mật cookie và CSRF protection sẵn có của Laravel.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\n\n\u003Cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n\u003Cp class=\"wp-block-paragraph\">🧙 “Muốn an định giang sơn, cứ trung thành với Session Auth.”\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\" \u002F>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">\u003Cstrong>JWT Auth – Dành cho hiệp khách phiêu bạt\u003C\u002Fstrong>\u003C\u002Fh3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">Dùng khi:\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\n\u003Cli>Xây dựng \u003Cstrong>API\u003C\u002Fstrong> cho mobile, SPA, microservices.\u003C\u002Fli>\n\n\n\n\u003Cli>Cần xác thực \u003Cstrong>không phụ thuộc server\u003C\u002Fstrong>.\u003C\u002Fli>\n\n\n\n\u003Cli>Muốn người dùng đăng nhập 1 lần – dùng mọi nơi (SSO, đa nền tảng).\u003C\u002Fli>\n\u003C\u002Ful>\n\n\n\n\u003Cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n\u003Cp class=\"wp-block-paragraph\">🥷 “Đi khắp thiên hạ, mang theo JWT là đủ — chỉ cần chữ ký hợp lệ.”\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\" \u002F>\n\n\n\n\u003Ch2 class=\"wp-block-heading\">V. \u003Cstrong>Tổng kết giang hồ\u003C\u002Fstrong>\u003C\u002Fh2>\n\n\n\n\u003Cfigure class=\"wp-block-table\">\u003Ctable class=\"has-fixed-layout\">\u003Cthead>\u003Ctr>\u003Cth>Tình huống\u003C\u002Fth>\u003Cth>Môn phái khuyên dùng\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Web nội bộ, quản lý user, admin\u003C\u002Ftd>\u003Ctd>Session Auth\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Ứng dụng mobile, React\u002FVue SPA\u003C\u002Ftd>\u003Ctd>JWT Auth\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>API kết nối nhiều dịch vụ\u003C\u002Ftd>\u003Ctd>JWT Auth\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Muốn bảo mật cookie và CSRF sẵn có\u003C\u002Ftd>\u003Ctd>Session Auth\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\n","published","vdhoangson@gmail.com","2e00d396-6843-4625-87a1-560bb59ede80",{"id":32,"wordpressId":34,"filename":35,"storageKey":36,"sourceUrl":37,"mimeType":38,"altText":39,"caption":40,"width":41,"height":42,"createdAt":43,"updatedAt":44,"url":45},16368,"session-auth-vs-jwt-auth.png","wordpress\u002F2025\u002F11\u002Fsession-auth-vs-jwt-auth.png","https:\u002F\u002Fvdhoangson.com\u002Fwp-content\u002Fuploads\u002F2025\u002F11\u002Fsession-auth-vs-jwt-auth.png","image\u002Fpng","session-auth-vs-jwt-auth",null,1536,1024,"2025-11-08T08:34:10.000Z","2026-10-15T04:59:31.204Z","\u002Fuploads\u002Fwordpress\u002F2025\u002F11\u002Fsession-auth-vs-jwt-auth.png",[47,52],{"id":48,"wordpressId":49,"name":50,"slug":51,"parentId":40},"f6aff5ed-b85e-45e6-bbdb-08788be09d67",2,"Lập Trình","lap-trinh",{"id":53,"wordpressId":54,"name":55,"slug":56,"parentId":48},"56268c91-7b68-4ce5-9576-25ed0595bbac",20,"PHP","php",[58],{"id":59,"wordpressId":60,"name":61,"slug":62},"236197c7-fa55-4d64-ba54-add3201ffcbb",322,"jwt auth","jwt-auth","2025-11-08T08:37:12.000Z","2025-11-08T08:37:14.000Z",1,12]