Twitterの設定
次はTwitter側で外部ログインを使うための準備を行います。Twitterの連携アプリケーションを管理するためのページである、「Twitter Application Management」を開きます(ログインを求められたら、自分のTwitterアカウントを使ってログインします)。
すると、自分が管理しているアプリケーションの一覧が表示されます。この画面の右上にある「Create New App」ボタンをクリックします(図3)。
作成するアプリケーションの情報を入力する画面が表示されるので、次のように入力します(図4)。
Name
アプリケーション名(例:ExternalLoginSample)を入力します。
Description
Twitterの認証画面に表示されるアプリケーションの説明を入力します。
Website
アプリケーションの公式WebページのURLを入力します。サンプルではひとまず前項で控えておいた「開発サーバーのURL」を入力しておきます。この時、"localhost"は"127.0.0.1"(ループバックアドレス)に変更しておきましょう。
Callback URL
Twitterの認証後に呼び出されるURLを入力します。サンプルでは、「開発サーバーのURL」で始まる"http://127.0.0.1:xxxx/Account/RegisterExternalLogin.aspx"を入力します。
入力したらページ下部の「Developer Agreement」を読み、同意するために「Yes, I agree」にチェックを入れ、「Create your Twitter application」ボタンをクリックして、Twitter側の設定は完了です(図5)。
認証にTwitterを使用する
今度は、実際にTwitterを使用して認証を行うよう、コードを変更していきましょう。必要なコードはテンプレートにより、App_Start/Startup.Auth.csファイルのConfigureAuthメソッドにコメントアウトされた状態で生成されています。このコードをコメントアウトし、Twitterを使用するのに必要な情報に変更します(リスト1)。
using System; ~(略)~ using System.Configuration; namespace ExternalLoginSite { public partial class Startup { // 認証の構成の詳細については、http://go.microsoft.com/fwlink/?LinkId=301883 を参照してください。 public void ConfigureAuth(IAppBuilder app) { ~(略)~ // 次の行のコメントを解除して、サード パーティ ログイン プロバイダーを使用したログインを有効にします //app.UseMicrosoftAccountAuthentication( // clientId: "", // clientSecret: ""); // Twitterを認証に使用する app.UseTwitterAuthentication( consumerKey: ConfigurationManager.AppSettings["TwitterKey"], consumerSecret: ConfigurationManager.AppSettings["TwitterSecret"]); ~(略)~ } } }
「app.UseTwitterAuthentication」メソッド呼び出しのコメントを解除し、consumerKey、consumerSecretを引数に渡します。サンプルではExternalLogin.configファイルで定義し、ConfigurationManagerクラスを使って読み込んでいます。ダウンロードできるサンプルコードでは、ExternalLogin.config.sampleファイルとして含めていますので、内容を変更してExternalLogin.configにリネームしてください(リスト2)。
<?xml version="1.0" encoding="utf-8"?> <!-- https://apps.twitter.com/ で登録したアプリケーションのkey、secretに変更後、 ExternalLogin.configにリネームしてください。 --> <appSettings> <add key="TwitterKey" value="key"/> <add key="TwitterSecret" value="secret"/> </appSettings>
設定するkeyとsecretは、Twitterのアプリケーションの設定から取得して設定します。Webブラウザーで「Twitter Application Management」を開き、先ほど作成したアプリケーションプリケーション名をクリックしてください(図6)。
アプリケーション設定画面が表示されたら、「Keys and Access Tokens」タブを選択し、表示された「Consumer Key(API Key)」と「Consumer Secret(API Secret)」を確認し、ExternalLogin.configファイルの対応するadd要素のvalue属性に設定します(図7)。