2017-01-05 10 views
1

私はMVC5アプリケーションをサーバーに配置しました(今までlocalhost上にあった)、リダイレクトURLがlocalhostに設定されているため、Facebook認証が機能しません。リンク生成開始:それはREDIRECT_URIを生成しない方法MVC5 WebアプリケーションでFacebookのリダイレクトURLを変更するにはどうすればよいですか?

https://www.facebook.com/dialog/oauth?response_type=code&client_id=xxxxxxxxxxxxxxxx&redirect_uri=https%3A%2F%2Flocalhost%2Fsignin-facebook

?新しいサーバーのアドレスを指定する必要があり、プロジェクトのcsprojファイルのIISUrlプロパティを変更することになると思ったが、そうしたときにプロジェクトが読み込まれなかった。

Facebook側で新しいURLをホワイトリストに追加しましたが、アプリケーション自体に再配置されたことを伝える方法はありません(値に基づいてredirect_urlパラメータの値が生成されていると思います/私のアプリケーションのどこかに設定)。

私はマイクロソフトOwinパッケージを使用していて、ボタンを生成するためのコードは次のとおりです。

@foreach (AuthenticationDescription p in loginProviders) 
{ 
    <button type="submit" class="btn btn-default btn-block btn-social [email protected]()" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account"> 
          @p.AuthenticationType 
      <i class="fa [email protected]()"></i> 
    </button> 
} 

おかげ

+0

'App_Start/Startup.Auth.cs'でチェックしましたか? – Shoe

+0

私はしましたが、何も見えませんでした。私のappIDと秘密について言及しているが、パスについては何も言及していない。この行と何か関係がありますか?LoginPath = new PathString( "/ Account/Login")? – Richard

+0

そこからオーバーライドすることができますが、デフォルトは '/ signin-facebook'で、owinパイプラインはリクエストからのベースURIを前に付けます。あなたが配備したサーバがlocalhost上で動作していないと確信していますか? – Shoe

答えて

1

これはowinは、リダイレクトURIに

string baseUri = 
    Request.Scheme + 
    Uri.SchemeDelimiter + 
    Request.Host + 
    Request.PathBase; 

string redirectUri = 
    baseUri + 
    Options.CallbackPath; 

を構築する方法ですOptions.Callbackpathはデフォルトで/signin-facebook

あなたのベースURIがlocalhostを読み込んでいるので、あなたが配備したサーバがlocalhost上で実行されておらず、正しいドメイン名でブラウズ中であることを確認してください。

関連する問題