[MUSIC]
Trong bài tập này, chúng ta sẽ xem xét việc sử dụng các phiên Express.
Chúng tôi sẽ thiết lập các dấu ngoại-sessions middleware, và
sau đó các dấu ngoại-sessions tập tin lưu trữ middleware.
Và sau đó thiết lập ứng dụng của chúng tôi để sử dụng express-sessions thay vì
sử dụng cookie gán của họ như chúng tôi đã làm trong bài tập trước đó.
Chúng tôi cũng sẽ thấy làm thế nào các thông tin phiên chính nó theo dõi dưới
phía máy chủ.
Để bắt đầu với bài tập này,
hãy vào thư mục ConfusionServer trong
cửa sổ thiết bị đầu cuối hoặc lệnh của bạn, và sau đó chúng ta hãy cài đặt phiên nhanh.
Vì vậy, để làm điều đó, gõ npm cài đặt Express-session,
và sau đó phiên tập tin lưu trữ.
Bởi vì chúng tôi sẽ sử dụng kho lưu trữ tệp để duy trì thông tin phiên.
Vì vậy, sẽ cài đặt phiên cửa hàng trong mô-đun này cho mục đích.
Một khi cả hai đều được cài đặt, và như bạn có thể thấy ngay bây giờ,
tôi đang sử dụng phiên 1.15.6 và
phiên tập tin lưu trữ 1.2.0 trong khóa học này.
Một khi cả hai đều được cài đặt, chúng ta hãy vào ứng dụng ConfusionServer của chúng tôi.
Đi đến ứng dụng ConfusionServer,
ở đây, bây giờ chúng ta hãy nhập phiên Express-session.
Vì vậy, chúng ta sẽ nói, var phiên yêu cầu, phiên thể hiện.
Và var FileStore = yêu cầu
phiên -file-store.
Và điều này lấy phiên làm tham số của nó,
phiên này đề cập đến điều này mà chúng tôi vừa mới nhập vào đây.
Bây giờ một khi chúng tôi làm điều này, sau đó chúng tôi đi xuống vào mã
của chúng tôi ở đây, và sau đó chúng tôi sẽ thấy thay vì CookieParser.
Vì vậy, tôi sẽ bình luận ra CookieParser từ đó, và
sau đó bây giờ tôi sẽ sử dụng, Phiên ở đây.
Và sau đó, chúng tôi sẽ thiết lập phiên với
các tùy chọn khác nhau, chúng tôi sẽ nói tên,
tôi chỉ sử dụng một phiên ID ngẫu nhiên ở đây, và sau đó, Secret.
Tôi sẽ sử dụng bí mật mà tôi đã sử dụng trước đó.
Vậy hãy để tôi sao chép chuỗi đó ở đó.
Và sau đó, Save,
On, Uninitialized save false.
Lưu lại, sai. Các bài
luận sẽ không làm cho nhiều khác biệt với các ứng dụng đơn giản mà chúng tôi đang viết tại
thời điểm này.
Và sau đó chúng ta sẽ nói cửa hàng là mới,
FileStore mà chúng tôi tuyên bố trước đó.
Đó là nó.
Bây giờ phần mềm trung gian phiên của tôi được thiết lập để sử dụng ứng dụng của chúng tôi.
Bây giờ, như tôi đã đề cập, phần mềm trung gian phiên này sẽ thêm
req.session này vào thông báo yêu cầu,
vì vậy tôi sẽ làm một bản ghi giao diện điều khiển của req.session chỉ để xem những gì nó chứa.
Và sau đó, xuống dưới đây, thay vì kiểm tra cho req gán cookie người dùng,
tôi sẽ kiểm tra req.session.user ở đây.
Và sau đó, chúng ta sẽ xem xét tiêu đề ủy quyền, v.v.
Tất cả phần này sẽ vẫn giống hệt như trước.
Nhưng ở đây, thay vì thiết lập cookie, những gì tôi sẽ thiết lập ở đây là,
thay vì thiết lập cookie, vì vậy thay vì sử dụng res.cookie ở đây,
chúng tôi sẽ nói, req.session.user = để 'admin'.
Vì vậy, chúng tôi sẽ được thiết lập các tài sản người dùng trên
req-session để quản trị ở đây, và sau đó tiến hành về phía trước từ thời điểm này.
Vì vậy, phần còn lại của mã ở đây sẽ vẫn chính xác giống như trước đây,
sẽ không có bất kỳ thay đổi nào ở đây.
Và chấp nhận ngay ở đó, chúng tôi sẽ được kiểm tra req.session,
người dùng, là admin hay không?
Đó là tấm séc mà chúng ta sẽ làm ở đây.
Đó là nó. Đó
là những thay đổi mà chúng ta cần thực hiện đối với
ứng dụng của chúng tôi để sử dụng các phiên ở vị trí của cookie đã ký.
Hãy lưu các thay đổi và sau đó xem phiên bản này của máy chủ thể hiện của chúng tôi.
Quay trở lại cửa sổ thiết bị đầu cuối hoặc lệnh của chúng tôi, hãy khởi động lại
máy chủ của chúng tôi, nếu bạn là máy chủ đã chạy, chỉ cần dừng nó và khởi động lại máy chủ.
Và sau đó một khi máy chủ hoạt động và chạy,
chúng tôi sẽ đi đến người đưa thư và làm nếu bạn yêu cầu.
Đi đưa thư, để tôi xóa tất cả những điều này,
chúng tôi sẽ xóa các tiêu đề, chúng tôi sẽ xóa bỏ ủy quyền.
Và sau đó tôi sẽ đi đến cookie, và
tôi sẽ xóa cookie người dùng này, bởi vì cookie đó không còn hợp lệ nữa.
Và sau đó, chúng ta hãy gửi một yêu cầu get đến, Các món ăn lưu trữ địa phương.
Và sau đó như chúng tôi mong đợi, nó trở lại nói rằng, Bạn không được chứng thực.
Bây giờ, vì vậy hãy xác thực chính mình bằng cách sử dụng xác thực cơ bản.
Vì vậy, chúng tôi sẽ nói, admin, Mật khẩu.
Và sau đó chúng tôi sẽ cập nhật yêu cầu và
sau đó chúng tôi sẽ gửi yêu cầu GET đến cùng một điểm.
Và sau đó, chúng tôi nhận được trả lời trở lại từ phía máy chủ của chúng tôi.
Bây giờ, lưu ý rằng trong tiêu đề, bây giờ bạn sẽ thấy một lần nữa nó nói cookie ở đây.
Bây giờ điều này đã được gây ra bởi các cửa hàng phiên ở đây.
Và, khi bạn nhìn vào các cookie, bạn sẽ thấy rằng đã có một cookie khác
được thiết lập ở đây và tên là phiên ID.
Vì vậy, đây là tên mà chúng tôi cung cấp cho phiên của chúng tôi ở
đó, vì vậy đó là phiên ID mà chúng tôi đang sử dụng ở đây.
Và nếu bạn nhấp vào cookie, bạn sẽ nhận thấy rằng phiên ID là ngay đó.
Và sau đó, đây là những chi tiết về những gì bên trong cookie đó.
Vì vậy, bạn có thể nhận thấy một bó toàn bộ thông tin và ngày hết hạn cho
cookie, v.v.
Điều này có thể không có ý nghĩa gì với bạn vào lúc này, nhưng nó tồn tại ở đó.
Bây giờ, hãy để tôi xóa giấy ủy quyền.
Và cũng từ tiêu đề, hãy để tôi loại bỏ tiêu đề ủy quyền này.
Và sau đó tôi sẽ gửi lại yêu cầu, và
bạn sẽ nhận thấy rằng yêu cầu này sẽ được phục vụ chính xác ngay cả bây giờ.
Vì thực tế là cookie này tồn tại,
và cookie này sẽ được bao gồm trong yêu cầu đi.
Và phía máy chủ sẽ ánh xạ điều này cho phiên thích hợp.
Và như vậy, máy chủ nhận ra rằng đây là một người dùng được ủy quyền và
sẽ gửi trả lời.
Bây giờ đi đến giao diện điều khiển máy chủ của chúng tôi trong thiết bị đầu cuối hoặc cửa sổ lệnh
, bạn nhận thấy rằng, Thông tin được in trên máy chủ phía.
Vì vậy, nhìn thấy, bạn nhớ lại rằng tôi đã đăng nhập req.session ở đây.
Vì vậy, đây là nơi req.session chứa ban đầu.
Và sau đó nó nói, GET món ăn cho một không hợp lệ.
Tại thời điểm này, bạn đang gửi tiêu đề ủy quyền thích hợp ở đó.
Và vì vậy yêu cầu của bạn thành công đúng cách.
Nhưng lưu ý, những gì đang được đưa ra trong phiên trong yêu cầu tiếp theo.
Nhớ lại rằng tôi đã xóa tiêu đề ủy quyền và sau đó gửi yêu cầu.
Nhưng lưu ý những gì rec.session chứa ở đây.
Đặc biệt lưu ý rằng,
nó bây giờ chứa trường người dùng này với quản trị viên tại chỗ đó.
Vì vậy, đây là những gì máy chủ nhận được từ phía khách hàng của chúng tôi trong cookie.
Và cookie chính nó chứa tất cả các thông tin này ở đây.
Và như vậy, các máy chủ nhận ra rằng đây là một người dùng hợp lệ, và
sau đó gửi lại các kết quả từ phía máy chủ đó.
Đi đến người đưa thư,
chúng ta hãy xem xét các chi tiết của những gì bên trong cookie.
Vì vậy, khi bạn mở cookie ở đây,
bạn lại thấy tất cả các chi tiết của thông tin bên trong cookie ở đây.
Nếu bạn nhìn vào trình soạn thảo của bạn, bây giờ bạn thấy rằng trong trình soạn thảo của bạn,
có một thư mục mới ở đây được gọi là phiên đã được tạo ra ở đây.
Bây giờ điều này là bởi vì chúng tôi đã sử dụng tập tin lưu trữ để
theo dõi tất cả các phiên của chúng tôi.
Bây giờ đó là một trong những lý do tại sao tôi sử dụng kho lưu trữ tập tin để tôi có thể cho bạn thấy những gì
được lưu trữ trong một tập tin phiên ở phía máy chủ của tôi.
Vì vậy, nếu bạn mở tập tin này ở đây với tên dài ở đó,
bạn sẽ thấy bên trong đó, thông tin phiên được lưu trữ ở đây.
Vì vậy, nếu bạn duyệt thông tin phiên này, lưu ý đặc biệt,
trường ban đầu này là ở phía máy chủ.
Vì vậy, đây là nơi máy chủ của bạn đang theo dõi tất cả các thông tin này ở phía máy chủ.
Bây giờ cookie này chính nó được nhận dạng bởi máy chủ,
vì máy khách bao gồm cookie này trong yêu cầu đến.
Bây giờ nó có thể đi vào cửa hàng phiên và sau đó lấy thông tin,
và sau đó tải lên này vào req.sessions.
Và do đó, req.session chứa thông tin đặc biệt này trong
đó máy chủ của tôi đang sử dụng để kiểm tra chéo để đảm bảo rằng
khách hàng của tôi là một khách hàng được ủy quyền.
Đó là về các phiên.
Với điều này, chúng tôi hoàn thành bài tập này.
Trong bài tập này,
chúng ta đã thấy cách chúng ta có thể thiết lập ứng dụng thể hiện của chúng tôi để sử dụng phiên.
Và chúng tôi cũng đã thấy cách chúng tôi đang sử dụng kho lưu trữ tập tin để theo dõi các phiên của chúng tôi.
Đây là thời điểm tốt cho bạn để làm một nhận xét GET với
thông điệp Express phiên phần một.
[ NHẠC]