Một ứng dụng web điển hình chủ yếu là không trạng thái , vì tính chất yêu cầu / phản hồi của nó. Giao thức HTTP là ví dụ tốt nhất về giao thức không trạng thái . Nhưng vì hầu hết các ứng dụng web đều cần trạng thái , để giữ trạng thái , giữa máy chủ và máy khách, cookie được sử dụng để máy chủ có thể gửi mọi phản hồi trở lại máy khách. Điều này có nghĩa là yêu cầu tiếp theo được thực hiện từ máy khách sẽ bao gồm cookie này và do đó sẽ được máy chủ nhận ra. Bằng cách này, máy chủ có thể duy trì phiên với máy khách không trạng thái , biết hầu hết mọi thứ về trạng thái của ứng dụng , nhưng được lưu trữ trong máy chủ. Trong kịch bản này, không có lúc nào khách hàng giữtrạng thái , đó không phải là cách Ember.js hoạt động.
Trong Ember.js mọi thứ khác nhau. Ember.js làm cho công việc của lập trình viên dễ dàng hơn vì nó thực sự giữ trạng thái cho bạn, trong máy khách, biết mọi lúc về trạng thái của nó mà không phải yêu cầu máy chủ yêu cầu dữ liệu trạng thái .
Tuy nhiên, trạng thái giữ trong máy khách đôi khi cũng có thể đưa ra các vấn đề tương tranh mà đơn giản là không có trong các tình huống không trạng thái . Tuy nhiên, Ember.js cũng giải quyết vấn đề này cho bạn, cụ thể là dữ liệu ember được xây dựng với ý tưởng này. Tóm lại, Ember.js là một khung được thiết kế cho các máy khách có trạng thái .
Ember.js không hoạt động như một ứng dụng web phi trạng thái thông thường trong đó phiên , trạng thái và cookie tương ứng được xử lý gần như hoàn toàn bởi máy chủ. Ember.js giữ trạng thái hoàn toàn trong javascript (trong bộ nhớ của khách hàng chứ không phải trong DOM như một số khung công tác khác) và không cần máy chủ để quản lý phiên. Điều này dẫn đến việc Ember.js linh hoạt hơn trong nhiều tình huống, ví dụ: khi ứng dụng của bạn ở chế độ ngoại tuyến.
Rõ ràng vì lý do bảo mật, nó cần một loại mã thông báo hoặc khóa duy nhất được gửi đến máy chủ mỗi khi yêu cầu được thực hiện để được xác thực , theo cách này, máy chủ có thể tra cứu mã thông báo gửi (ban đầu được cung cấp bởi máy chủ) và xác minh nếu nó hợp lệ trước khi gửi phản hồi lại cho khách hàng.
Theo tôi, lý do chính tại sao sử dụng mã thông báo xác thực thay vì cookie như được nêu trong Câu hỏi thường gặp của Ember Auth chủ yếu là do bản chất của khung Ember.js và cũng vì nó phù hợp hơn với mô hình ứng dụng web trạng thái . Do đó, cơ chế cookie không phải là cách tiếp cận tốt nhất khi xây dựng ứng dụng Ember.js.
Tôi hy vọng câu trả lời của tôi sẽ có ý nghĩa hơn cho câu hỏi của bạn.