2014-05-19 314 views
0

僅使用oauth提供程序(FB等)客戶端身份驗證Webapi身份驗證(HTML5/JS電話應用程序)。Webapi身份驗證,僅使用客戶端身份驗證

這是一個棘手的一個, 這樣我就可以使用用戶名和密碼,我們的WebAPI驗證,使用JS從HTML客戶端,通過用戶名&密碼作爲參數通過HTTPS我們可以設置用戶授權,使他們能夠訪問額外的數據庫更新等控制器,迄今爲止這麼好,忍受着我。

我可以驗證FB,使用MVC並將用戶設置爲授權。

我可以用HTML & JS客戶端(hooray)來做同樣的事情,現在我該如何授權控制器,好吧,我從FB獲取用戶郵件,所以任何人都可以通過。假設我可以重定向到MVC頁面(從客戶端),然後在控制器上設置auth,但這樣做不好(將用戶從應用程序或彈出窗口中發送出去)。

什麼是從客戶端認證用戶並同時授權webapi控制器的最佳方法?是否必須將用戶重定向到mvc頁面,並且這樣做,其他人如何處理此問題手機應用程序/手機差距/英特爾xdk?

+0

所以,如果我從JS API獲得訪問令牌http://stackoverflow.com/questions/6126517/retrieve-access-token-using-javascript-api併發送通過HTTPS到webpai,並使用FB圖 – saj

+0

咳嗽....花了超過五分鐘.....所以,如果我從JS獲取訪問令牌通過HTTPS發送到webapi,然後將其發送到FB圖https://graph.facebook.com/me?access_token=YOUR_ACCESS_TOKEN,從web api中,然後授權控制器((s)是否安全,也許...? – saj

+0

認證只能在服務器端執行,你只有使用服務器驗證身份您使用跨瀏覽器腳本編寫問題也是不安全的 –

回答

0

該方法顯然是,示例Facebook,但過程是相同的任何oauth提供商, 獲取用戶登錄/訪問令牌。 使用服務器API驗證令牌是否爲真品(在FB的案例圖API中) 客戶端快樂地登錄,直到訪問令牌過期。 過期(2小時爲默認值),重定向用戶再次登錄,應用程序已知應該進行身份驗證而無需再次登錄,除非用戶已撤銷對應用程序的授權。

這裏是如何處理過期的訪問令牌(例子是PHP)

不完全是優雅的一個環節,但它是什麼,我認爲這是唯一的超級怪才!

對不起,回答我的問題