2016-08-12 185 views
0

我有一個網站在PHP Laravel 5.2C#自動登錄使用桌面應用程序的網站

我想使用C#創建一個桌面應用程序(類似於Windows的下拉框應用程序),其中將會有一個按鈕「打開網頁」,單擊登錄用戶(在桌面應用程序中)應該得到的按鈕登錄到網站而不詢問任何憑證。

在網站中,我使用的是基於api_token的身份驗證。

有一種可能的方式,我可以在網站上做一個終點來檢查令牌,如果用戶登錄正確,但我認爲它不太安全。

我已經檢查了請求響應日誌中的投遞箱「打開dropbox.com」按鈕,它沒有在請求中設置任何令牌。

問題是我該如何實現它?

+0

嘗試使webrequste(POST)到您的PHP腳本返回一個json – Radinator

回答

1

一種方式是做到以下幾點:在您的桌面應用程序的服務器,這是指你想登錄爲

  • 用戶在使用一次

    1. 請求(隨機數)唯一代碼

      打開一個網頁瀏覽過程中與包含此使用一次性代碼的地址,這樣的事情:

      http://www.your.server.com/the/page/you/want?auth=29874298798724982734

    方式的Dropbox這樣做,是在磁盤上創建其中包含一些JavaScript代碼,他們的服務器上的職位「形」到一個安全的網頁

    https://www.dropbox.com/desktop_login 
    
    form fields: 
        buildno=Dropbox-win-7.4.30 
        u=home 
        c=en_US 
        i=<some number> 
        n data-nonce-c=<some large hex string> 
    

    然後生成一個網頁瀏覽器進程打開一個臨時的HTML文件這個文件。

    要查看該文件,使用全球鏈接在你的Dropbox應用,然後儘快按Esc鍵作爲初始網頁加載和搶URL看起來應該是這樣的:

    file://C:/users/USERNAME/appdata/local/temp/RANDOM.html 
    

    然後打開此文件檢查它。

  • +0

    我認爲使用您現在建議的第一種方法會更好。非常感謝。 :) – Dev