2012-08-22 37 views
8

Trong AngularJS, tôi có một bộ điều khiển đăng nhập được chuyển hướng đến bởi mọi trang trong ứng dụng nếu người dùng đến trang và không đăng nhập. Sau chuỗi đăng nhập, tôi muốn chuyển hướng người dùng trở lại trang mà họ đến từ. Cách tốt nhất để làm điều này là gì? Lưu vị trí cũ trong $rootScope? Chuyển hướng đến '/login?returnto=' + $location.path()? Có chức năng tích hợp không?Chuyển hướng đến referer

Trả lời

5

Bạn có thể sử dụng $rootScope hoặc xác định dịch vụ để lưu vị trí cũ. Đây là một số SO post tương phản hai cách tiếp cận. Cá nhân tôi không thích thêm returnto= vào URL.

Bài đăng trên blog này, Authentication in AngularJS, có thể bạn quan tâm. Lưu ý nhận xét rằng Vojta (một trong những tác giả của AngularJS) đã thực hiện trên bài đăng trên blog đó về việc sử dụng $rootScope - anh ấy đề xuất một dịch vụ thay thế.

+1

Điều gì xảy ra nếu trang đăng nhập không phải là trang được xử lý bởi góc – JustGoscha

+1

@JustGoscha, hãy sử dụng cookie hoặc đối tượng phiên phía máy chủ để lưu trữ trang gốc. Sau khi đăng nhập thành công, hãy kiểm tra sự tồn tại của cookie hoặc trích xuất trang từ phiên và gửi đến trình duyệt (ví dụ: dưới dạng một số yếu tố biểu mẫu JavaScript hoặc ẩn). –

Các vấn đề liên quan