2015-11-12 30 views
5

cấu trúc ứng dụng của tôi là như dưới đây -oauth chia sẻ thẻ nhiều ứng dụng

https://democompany.com/ 
https://democompany.com/app1 
https://democompany.com/api 

người dùng đăng nhập vào chính url trang web https://democompany.com/logon.aspx mà là một ứng dụng webforms asp.net.

ứng dụng app1 là ứng dụng angularjs sử dụng/ứng dụng api. api là ứng dụng webapi2 sử dụng mã thông báo oauth để xác thực. Tôi chỉ muốn đăng nhập người dùng một lần tại democompany.com/logon.aspx và chuyển mã thông báo oauth cho ứng dụng angularjs.

Có cách nào được khuyến nghị để chuyển mã thông báo oauth từ ứng dụng này sang ứng dụng khác.

Trả lời

4

Miễn là các ứng dụng của bạn sử dụng một tên miền phụ, bạn có thể sử dụng window.localStorage phía máy khách cho các mục đích đó.

// to set token in storage  
window.localStorage.setItem('access_token', access_token); 
// to get token from storage 
access_token = window.localStorage.getItem('access_token'); 

Vì vậy, bạn sẽ có quyền truy cập vào bộ nhớ đó từ mọi trang với một số mã javascript. Ví dụ với sự kết hợp của góc + web.api bạn có thể thiết lập mã thông báo cho tất cả các yêu cầu của bạn trong dịch vụ http $:

$http.defaults.headers.common['Authorization'] = "Bearer " + token; 

Ngoài ra bạn có thể sử dụng để thiết lập interceptor thẻ nếu bạn muốn có thêm quyền kiểm soát của mã của bạn.

+0

Window.localStorage có hoạt động trong các trình duyệt ie8 và ie9 không? Cảm ơn vì đã trả lời ! – Yousuf

+0

Tôi không bao giờ sử dụng nó cho ie8, nhưng theo [this] (http://stackoverflow.com/questions/3452816/does-ie8-out-of-the-box-have-support-for-localstorage) trả lời nó . Ngoài ra, bạn có thể xem bảng tính tương thích [ở đây] (http://www.w3schools.com/html/html5_webstorage.asp). –

+0

http://caniuse.com/#feat=namevalue-storage nói rằng trừ khi bạn đang sử dụng IE6/IE7 hoặc Opera Mini, nó sẽ hoạt động ở mọi nơi kể cả di động. –

0

Tôi tin rằng những gì bạn mô tả là định nghĩa của Cookie.

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