2015-11-12 14 views
5

私のアプリケーション構造は以下のようなものです - asp.netのWebフォームアプリケーションであるメインウェブサイトURL https://democompany.com/logon.aspxの中OAuthのトーク​​ンを共有する複数のアプリケーション

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

ユーザーがログイン。

app1アプリケーションは/ apiアプリを使用するanglejsアプリケーションです。 apiは認証にoauthトークンを使用するwebapi2アプリケーションです。私はdemocompany.com/logon.aspxで一度だけユーザーのログインを持ち、anglejsアプリケーションにoauthトークンを渡したいと思います。

あるアプリケーションから別のアプリケーションにoauthトークンを渡すことをお勧めします。

答えて

4

アプリケーションが1つのサブドメインを使用している限り、その目的のためにクライアントサイドのwindow.localStorageを使用できます。

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

これで、すべてのページからその保存場所にアクセスできるようになります。例えば、角度+の組み合わせで、あなたは$ HTTPサービスのすべてのあなたの要求のためのセットアップ・トークンができweb.api:あなたのコードのより多くの制御を持っているしたい場合は

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

はまた、あなたは、セットアップ・トークンへinterceptorを使用することができます。

+0

ie.localStorageはie8およびie9ブラウザで動作しますか?答えてくれてありがとう ! – Yousuf

+0

私はそれをie8のために使ったことはありませんでしたが、[this](http://stackoverflow.com/questions/3452816/does-ie8-out-of-the-box-have-support-for-localstorage)によれば答えます。 互換性の表[ここ](http://www.w3schools.com/html/html5_webstorage.asp)もご覧ください。 –

+0

http://caniuse.com/#feat=namevalue-storageによれば、IE6/IE7やOpera Miniを使用していない限り、モバイルを含めてどこでも動作します。 –

0

私はあなたが説明しているものはクッキーの定義だと思います。

関連する問題