2016-08-12 8 views
0

私はPHPでウェブサイトを持っていますLaravel 5.2デスクトップアプリケーションを使用してC#に自動ログイン

C#を使用してデスクトップアプリケーション(Windows用のドロップボックスアプリケーションのようなもの)を作成したい場合、「ウェブを開く」ボタンがあり、ログインしているユーザー(デスクトップアプリケーション)をクリックする必要があります資格情報を尋ねずにWebサイトにログインしています。

ウェブサイトでは、api_tokenベースの認証を使用しています。

ウェブサイトにエンドポイントを作成して、正しい場合にログインしたユーザーをトークンで確認する方法がありますが、安全性は低いと思います。

私はdrop-box "dropbox.comを開く"ボタンのためのfiddlerの要求 - 応答ログをチェックしましたが、要求に応じてトークンを設定しません。

問題はどうすれば達成できますか?次の操作を行います

+0

json – Radinator

答えて

1

一つの方法:リクエスト利用ワンス(ナンス)あなたは

  • としてログインするユーザーを指しデスクトップアプリケーションでサーバーから固有のコード、

    1. オープンこの使用ワンスコードが含まれているアドレスを持つウェブブラウザのプロセス、このような何か:

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

    のDropboxがこれを行う方法は、それがウェブブラウザのプロセスを生成する

    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> 
    

    そのサーバー上の安全なページへの投稿「フォーム」がオープンすることにいくつかのJavaScriptコードが含まれているディスク上の一時htmlファイルを作成することですこのファイル。

    、このファイルを参照してください、あなたのDropboxアプリで世界中のリンクを使用して、最初のWebページが読み込まれるとすぐにEscキーを押すと次のようになります。URLつかむために:

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

    は次にこのファイルを開くにそれを検査する。

  • +0

    を返すPHPスクリプトにWebrequste(POST)を試してみてください。あなたが今提案した最初のアプローチを使用する方が良いと思います。どうもありがとう。 :) – Dev

    関連する問題