我在2部分中創建應用程序。在一臺服務器上是一個使用Owin的.net Webapi2。在另一臺服務器上是一個MVC5網站,目前沒有登錄,將作爲api的前端。這也是一個很好的賣點,表明應用程序本身就是客戶可以開發的一個例子,因爲它依賴於相同的api。我把用戶認證的東西放在api中,因爲我需要第三方能夠使用api開發自己的前端應用程序。如何讓MVC5客戶端通過遠程WebApi2應用登錄?
我正在試圖完成的(理論上) 我需要有一個用戶提交前端他們的登錄信息將通過resourceownergrant型驗證他們的身份,並收到效果,使前端創建一個包含accesstoken和identityuser /角色的cookie。只要這個cookie存在,mvc應用程序就會使用accesstoken調用api。 MVC應用程序和API都將能夠使用[授權]屬性。
我有什麼到目前爲止 我有API起來和工作,我可以張貼「grant_type =密碼&用戶名= testuser的&密碼= password123」我收到這樣的事情在JSON
{
"access_token":"-longasstokenhere-",
"token_type":"bearer",
"expires_in":1209599,
"userName":"testuser",
".issued":"Thu, 03 Apr 2014 16:21:06 GMT",
".expires":"Thu, 17 Apr 2014 16:21:06 GMT"
}
網絡API的迴應也有
set-cookie: -Long-assserializedcookiestuffhere-
頭我的問題是如何連接我的MVC應用程序。
在我mvc5應用我有一個啓動的owin這一套在configureauth
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
CookieName = "MyCookie",
LoginPath = new PathString("/Account/Login")
});
我見[授權]屬性的測試頁,當我參觀,它正確地重定向設置上我到登錄頁面。我缺少的是如何做到這一點,使點擊登錄使網站發回api並創建一個Owin Cookie,網站將使用該cookie允許用戶通過[授權] attibute。我也希望它包含identityuser,所以web應用程序將自動獲得用戶信息,而不必在每次調用時都回發到api。我不知道我能否以某種方式或返回的結果抓取cookie。
此外,如果他們有更好的方式,我願意接受建議。
Heeelp!?
嘿,我試圖使用你的實現原因即時通訊使用JWT令牌,它的工作很好,當我在角度使用它,並在標題中發送令牌...但我需要我的MVC有時切換視圖,所以我需要一個cookie讓我登錄mvc ...但即使使用您的代碼,我仍然不會通過控制器中的授權...我在哪裏可以調試JWT中的授權屬性中發生了什麼? – Shakawkaw