2016-09-08 2 views
1

OneDriveに接続し、OneDriveにイメージをアップロード/ダウンロードできるサンプルコードを変更しました。 MVC5アプリhereを導入しました。以下は、JavaScriptコードローカルホストでOAuth 2.0暗黙のフローが動作していますが、サイトがAzureにデプロイされているときではありません

$(document).ready(function() { 
      var client_id = "61029bc2-373d-46d6-935b-ab34b325ef3a", 
       scope = ["wl.signin", "wl.basic", "wl.skydrive", "wl.skydrive_update"], 
       //redirect_uri = "http://localhost:61727/home/callback"; //when redirect_uri is configured as localhost everything works find 
        redirect_uri = "http://onedriveuploaddemo.azurewebsites.net/home/callback"; //When I deploy application to azure get error saying invalid redirect_uri 

      WL.Event.subscribe("auth.login", onLogin); 
      WL.Event.subscribe("auth.sessionChange", onSessionChange); 
      WL.init({ client_id: client_id, redirect_uri: redirect_uri, response_type: "token", scope: scope }); 
      WL.ui({ name: "signin", element: "signin" }); 

     }); 

の重要な部分は、私がローカルホストすなわち(http://localhost:61727/home/callback)として 'REDIRECT_URI' を設定するときにアプリ

enter image description here

  1. の設定は、以下を参照してくださいです。アプリケーションは期待どおりに動作します。ログインボタンをクリックすると、ログイン画面がライブログイン画面にリダイレクトされ、ユーザー名とパスワードを入力できます。私は 'redirect_url'にリダイレクトされます。
  2. ページのthatsを指している 'redirect_uri'紺碧でホストされています。私はMVCアプリケーションhereをホストしています。 「サインイン」ボタンをクリックするとダイアログが開き、すぐに閉じます。私はエラーメッセージをつかむことができません。しかし、「REDIRECT_URI」の問題であるように思わ

私はこれを成し遂げるためにアズールで任意の設定を有効にする必要がありますか?

注:私は、すなわちMVCアプリでと「アプリケーション登録ポータル」との両方が同一であるの両方の場所でそれを変更しています「REDIRECT_URI」を設定している間。 Fiddler4を使用して

答えて

3

、私はエラーメッセージを表示し、キャッチすることができた: The provided value for the input parameter 'redirect_uri' is not valid. The scope 'wl.signin wl.basic wl.skydrive wl.skydrive_update' requires that the request must be sent over a secure connection using SSL.

Microsoftは今、すべての認証がリダイレクトのために、リダイレクトURIは、SSLを使用する必要があります。 Localhostは免除されているので、そこで働いたのです。 Microsoftアカウントを使用してログインを許可する場合は、サイトでSSLをサポートする必要があります。

また、非常に古いLiveSDK for JavaScriptを使用しているようです。これは、新しいOneDrive APIをサポートしていないため、これ以上推奨されません。 JavaScript用のOneDrive SDKはありませんが、OneDrive-Explorer-JSのサンプルコードは、LiveSDKコードを使用せずに認証を処理するのに役立ちます。特に、odauth.jsはあなたが必要とするすべてのものをほとんど行うべきです。

+0

ありがとう@Ryan Gregg安全な接続を使用していました。これでOneDriveにアクセスできます。また、OneDriveにアクセスするための最新技術について知っていただきありがとうございます。 – user2243747

+0

@RyanGreggリダイレクトURIにSSLのみを使用するという要件に関するMicrosoftのドキュメントへのリンクを投稿できますか?それは見つけられません。 – mixel

関連する問題