2017-03-23 85 views
1

我是身份認證服務器的新手,想要使用它來保護我的兩個應用程序(MVC,Webapi)。 我已經看到了我們可以從MVC操作方法和發出到MVC應用程序的SetBearerToken調用webapi的示例。我指的是在下面的示例:使用身份認證服務器的ASP.Net MVC和WebApi身份認證

https://identityserver.github.io/Documentation/docsv2/overview/mvcGettingStarted.html

這是我們正在使用頒發給MVC應用程序的Web API訪問令牌服務器通信服務器的典型例子。

在相同的情況下,我想從Javascript客戶端(從前Angular或任何一個)調用webapi使用相同的訪問令牌。

「我想通過發出來的MVC應用程序調用的WebAPI從JavaScript的訪問令牌」

我怎樣才能利用頒發給我的MVC應用程序從JavaScript客戶端的令牌?

感謝

回答

0

他們應該在我看來,被視爲不同的客戶端,我想他們是不同的網站?爲了您的JavaScript客戶端,你應該能夠找到例子here,您可以使用此示例中提供的JavaScript lib或寫一個自己

一旦你得到了令牌,那麼你可以使用打電話給你的API AJAX,在那裏你可能面對CORS問題,如果你的webapi在不同的領域,那麼......這是不同的話題。

希望幫助

+0

那麼,怎麼樣的應用程序流: 1:用戶將登錄到Web應用程序使用UseOpenIdConnect 2.身份服務器將打開登錄頁面,驗證用戶和存儲的令牌餅乾 3.現在,如果我們想訪問Web API,我們將得到再次 4.身份服務器acctess令牌傳遞在頭(承載令牌)的令牌來訪問Web API 你覺得呢? –

+0

您好,對於遲到的依賴,對於3),如果您想在您的webapp的服務器端調用API,您可以從ClaimsPrincipal獲取它,因爲訪問令牌應該是一個聲明,可以在此處找到示例: https: //github.com/IdentityServer/IdentityServer3.Samples/blob/master/source/MVC%20Authentication/EmbeddedMvc​​/Controllers/CallApiController.cs – Ming

+0

是的,你是對的。我們可以很容易地從ClaimPrincipal獲取服務器端的訪問令牌。但是,我的要求是不同的。我不想通過服務器訪問網絡API,我想直接從任何JS客戶端像AngularJS或其他東西訪問它。所以記住這一點你會建議? –