2016-10-04 14 views
2

私はアイデンティティ(カスタム認証)のないMVCプロジェクトを持っています。しかし、私はそれにGoogleとFacebookの認証を実装したい。既存のMVCにGoogleログインを実装

MVC ID認証でマイクロソフトがどのように動作するかを見るために、このプロジェクトを別に作成しました。私はその一部を実装することができました。今私はログインする私の電子メールを選択すると、それがエラーを持っている - エラー:redirect_uri_mismatch - 私は、動作する私のURLと一致するように強制的に私は、Google認証ページを呼び出すボタンがあります。

Googleはアカウントコントローラで自分のアクションを呼び出すことができますが、コピーしたMVCベースコードを見ても、そのユーザーに関する情報は取得できません。

これはLOGININFO

にnullを返します私の方法
public async Task<ActionResult> LoginWithGoogle(string returnUrl) 
    { 
     var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); 

である、これは私がGoogleの認証から情報を取得できますかAuthenticationManager

private IAuthenticationManager AuthenticationManager 
    { 
     get 
     { 
      return HttpContext.GetOwinContext().Authentication; 
     } 
    } 

のですか?私はjavascriptでこれを行うことができますが、私はC#だけでやりたいです。

ありがとうございます。

+2

Googleの場合は、そこにたくさんのことがありますが、私はかなり確信しています。私はあなたがVisual Studioで新しいプロジェクトを作成しているときでも、何らかのOAuthを使用したいと言うことができます。https://www.asp.net/mvc/overview/security/create-an-aspnet- mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on – mmcrae

+0

はい、始めにOAuthでプロジェクトを作成していませんでしたが、今はGoogle認証を実装しようとしていますその情報が空です – GameDev

答えて

1

私は最近、カスタムGoogleログインプロジェクトを作成しました。クレームを使用してユーザーの詳細を保存していますが、カスタムロジックを使用できます。

GitHubで見つけてください。詳細な手順があります。

https://github.com/kishancool11/GoogleLoginMVC

あなたはGoogleLoginCallbackの代わりにLoginWithGoogleを使用することができます。

+0

MVCがすでにGoogleログインを実装している場合、なぜこれを行うのですか? [ガイドへのリンク](https://docs.microsoft.com/en-us/aspnet/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google- oauth2-and-openid-sign-on)がコメントに含まれています。これを有効にするには、構成コード –

+1

に少し変更するだけで済みます。しかし、誰かがすべてのアイデンティティクラスとそのメソッドを使いたくない場合はどうでしょうか?特に、アイデンティティを使用していない既存のプロジェクトではマイクロソフトのこのギルドラインは、アイデンティティのみに基づいています。 Identity 1.0または2.0を使用するのは良い方法ですが、管理するのが非常に賢明です。私たちはセッション/クッキー/クレーム、またはこのデフォルトのものの代わりに必要なものを使用することができます。そして、ほとんどの人はこれらの事前定義されたアクションがAccountControllerで何をしているのか理解していません。したがって、このPOCは、MVCのGoogleログインに必要なものだけがあります。 –

関連する問題