2014-06-09 21 views
17

Tôi có ứng dụng góc mà tôi cần chuyển hướng bên ngoài tới trang html không góc cạnh, vì vậy tôi nghĩ tôi chỉ có thể sử dụng $window.location.href để chuyển hướng ứng dụng góc tới bên ngoài của tôi trang web. Điều này thực sự hoạt động tốt, tuy nhiên, tôi có một nodejs/thể hiện phụ trợ kiểm tra mã thông báo auth trước khi phục vụ lên bất kỳ nội dung (ngay cả nội dung tĩnh).Thêm tiêu đề http vào window.location.href trong ứng dụng Góc

Điều này yêu cầu mã thông báo xác thực được gửi trong tiêu đề của yêu cầu http. Bây giờ câu hỏi:

Có thể/Làm cách nào để bạn thêm mã thông báo xác thực vào yêu cầu được thực hiện bằng cách thay đổi $window.location.href trước khi gửi đi?

Trả lời

20

Khi bạn sử dụng $window.location.href trình duyệt đang thực hiện yêu cầu HTTP chứ không phải mã JavaScript của bạn. Do đó, bạn không thể thêm tiêu đề tùy chỉnh như Authorization với giá trị mã thông báo của mình.

Bạn có thể thêm cookie qua JavaScript và đặt mã thông báo xác thực tại đó. Các cookie sẽ tự động được gửi từ trình duyệt. Tuy nhiên, bạn sẽ muốn xem xét các tác động bảo mật của việc sử dụng cookie so với tiêu đề. Vì cả hai đều có thể truy cập được qua JavaScript nên không có thêm bất kỳ tấn công nào ở đó. Trừ khi bạn xóa cookie sau khi tải trang mới, có thể có một khai thác CSRF có sẵn.

+1

câu trả lời tuyệt vời, tôi tự hỏi liệu các cookie góc có hoạt động được không. Dù sao cảm ơn cho đúng hướng. – britztopher

1

Tôi đang sử dụng JWT làm xác thực trên một chương trình phụ trợ PHP Laravel và nó hoạt động bằng cách đặt ?token=... vào URL. Ví dụ, khi sử dụng AngularJS với trình cắm thêm vệ tinh, tôi thêm ?token=' + $auth.getToken() vào URL.

Tôi sử dụng nó đúng cho các cuộc gọi API, sử dụng SSL. Lưu ý rằng đây có thể không phải là cách xác thực bảo mật trong trường hợp sử dụng của bạn.

+5

cũng nhúng mã thông báo như tham số URL là điều cuối cùng mà tôi muốn làm. –

+0

Nó có thể là một chút xấu xí, nhưng nó hoạt động! – Kong

+0

Ngay cả trong SSL, trình thám thính cũng có thể đọc URL của yêu cầu, vì vậy, đó là cách TUYỆT VỜI để chuyển mã thông báo tới yêu cầu. Nếu bạn đang sử dụng SSL, bạn nên đặt mã thông báo trong tiêu đề hoặc trong phần nội dung. – Thecave3

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