Visual Studio Express 2012 for Web でいってみる 31.OAuth/OpenId認証(その3)MVC4でGoogle+ 認証を使う
Visual Studio Express 2012やらMVC4と今となっては化石ネタかもしれませんが、久しぶりの更新です。
さて、今般MVC4のテスト用に借りていたレンタルサーバーでは、頻繁に
Migrating to Google+ Sign-In - Google+ Platform — Google Developers
どうやら、GooglePlusでの認証に切り替えればいけそうな記述なので、再度調査。
でも見つかる情報はMVC5以降のOWINを使った事例ばかりで、MVC4の事例が見つからずあきらめかけていたところ、以下のページに行き当たりました。感謝!、感謝!
Google+ Signin for ASP.NET MVC 4 | Be a Big Rockstar
このページの最後にGithubへのリンクがあります。そのリンクに従ってGithubから
「GooglePlusOAuthLogin」ZIPをダウンロードして展開するとMVC4のプロジェクトが取得できます。
私がやった手順は以下の通りです。
1.Google API Consoleへ行ってアプリケーションを登録する
ここんところは、以下のページを参照しました。感謝!
Using Google+ authentication in ASP.NET MVC | Be a Big Rockstar
ASP.NET MVC 5 で OAuth 2.0 を使用して Google 認証を行う方法: ある SE のつぶやき
2.Githubから「GooglePlusOAuthLogin」プロジェクトを取得
以下このプロジェクトと自分のプロジェクトを見比べながら変更しました。
3.自分のプロジェクトの「App_Start」フォルダに「GooglePlusOAuthLogin」プロジェクトから「GooglePlusClient.cs」をコピーして追加。(そのまま使用)4.「App_Start」フォルダ内の「AuthConfig.cs」内のOAuthWebSecurity.RegisterGoogleClient();をコメントアウトし、代わりに
OAuthWebSecurity.RegisterClient(new GooglePlusClient
("1で取得したクライアントID", "1で取得したクライアントシークレット"
), "Google+", null);
を追加。
5.「Controllers」フォルダの「AccountController.cs」については、
using GooglePlusOAuthLogin; を追加
ExternalLoginCallbackメソッドに
GooglePlusClient.RewriteRequest();を追加。
6.「Views」-「Account」フォルダの「_ExternalLoginsListPartial.cshtml」内のgoogleでログインボタンのvalue部分を「value="google"」から「value="GooglePlus"」に変更。
今のところ以上の改定作業で「GooglePlus」でのログインで自プロジェクトへのログインができるようになりました。
今後ともこれでいいのか若干不安がのこりますが、皆さんの参考になれば幸いです。