Q&A lập trình viên

Chủ đề

#session

Công nghệ

Giải ngố về cookies, session và cách duy trì đăng nhập khi tắt tab hoặc đóng cửa sổ .NET

Em vừa từ nhúng sang mảng web này thì khi tìm hiểu sâu vào bảo mật và xác thực có rất nhiều thứ khó hiểu cần chỉ dạy thêm :v Số là khi tìm hiểu về JWT thì em hiểu là khi user đăng nhập thì sẽ có 2 thứ được sinh ra là access token và refresh token. Sơ đồ nó sẽ là như này user ---------------------> server user <----access token ---- server refresh token Refresh token và access token sẽ được lưu vào cookies. Sau đó khi client gửi request yêu cầu truy cập vào các tài nguyên được bảo về như thông tin cá nhân thì access token sẽ được gửi kèm để chứng minh thân phận. Nếu access token hết hạn thì khi request sẽ gửi về lỗi 401, khi đó refresh token sẽ được gửi đi để request 1 access token mới. Tới đây thì em có vài thắc mắc. 1. Một vài trang (đa số) ghi cookies rằng chỉ tồn tại ở client side, nhưng trên trang của mozilla lại ghi là "The Set-Cookie HTTP response header is used to send a cookie from the server to the user agent, so that the user agent can send it back to the server later. To send multiple cookies, multiple Set-Cookie headers should be sent in the same response." Nên em khá là rối. 2. Ngoài cookies ra em cũng thấy có khá nhiều option khác như session storage, localStorage, SharedStorage, CacheStorage, thì thực tế thường là sẽ lưu ở đâu? Tại sao? Và việc lưu ở đâu là do mình quy định hay là browser (hay user-agent) sẽ quyết định ạ? Và nếu là mình quyết thì do server hay bên client sẽ làm điều đó? 3. Các thuộc tính của cookies như httpOnly, SameSite, Secure sẽ được set ở backend hay frontend ạ? 4. Bussiness logic như sau khi đăng nhập, tắt tab hoặc tắt window mở lại vẫn đang đăng nhập thì được xử lí như nào ạ? 5. Việc đính kèm header có kèm token xác thực thì browser sẽ tự làm hộ mình hay frontend phải làm? 6. Refresh token có cần thiết cho vấn đề duy trì đăng nhập không? Nếu không thì sẽ có những giải pháp nào ạ?

Trả lời 2 • Up 5

5 tháng trước • Lượt xem 238

Công nghệ

Muốn tiếp cận session từ _app.tsx

Mình đang dùng next-auth.js, với next.js v13 Mình đang muốn làm chức năng là: khi user đăng ký thành viên mới thì sẽ chuyển họ qua một page khác. Theo mình thì vị trí phù hợp cho code này là ở _app.tsx nhưng mà session nhận từ pageProps thì lại là undefined, nên mình không biết là liệu mình có cách tiếp cận session nào khác ko nhỉ?

Trả lời 1

6 tháng trước • Lượt xem 89