dotnetopenauth を facebook で うまいこと使う
DESCRIPTION
DotNetOpenAuth を Facebook で うまいこと使う. < ウマーー. In まどべん よっかいち 2013/07/27 @kekyo2. 自己紹介. けきょ、 とか。 ロードバイクで走ってます。 会社やってます。 主に Windows 。 C#, C++/CLI, ATL, C++0x, x86/x64 アセンブラ , WDM, Azure, TFS, OpenCV , Geo, JNI, 鯖管理 , MCP 少々 , 自作 PC, 昔マイコン , 複式簿記経理 ww NOKIA Lumia 710 (一本審査中). - PowerPoint PPT PresentationTRANSCRIPT
DotNetOpenAuth をFacebook でうまいこと使う
In まどべんよっかいち 2013/07/27@kekyo2
< ウマーー
自己紹介けきょ、とか。ロードバイクで走ってます。会社やってます。主に Windows 。 C#, C++/CLI, ATL, C++0x, x86/x64 アセンブラ , WDM, Azure, TFS, OpenCV, Geo, JNI, 鯖管理 , MCP 少々 , 自作PC, 昔マイコン , 複式簿記経理 wwNOKIA Lumia 710 (一本審査中)
DotNetOpenAuth ってなに?
Visual Studio 2012 で ASP.NET MVC4プロジェクトを開始すると、入っているライブラリ(インターネットプロジェクト)Microsoft がオープンソースライブラリとして The OuterCurve Foundation に寄贈OAuth 認可を実現する
OAuth ?認可?なにそれ?おいしい?
What’s OAuth? How OAuth?ウェブサービスで操作可能なパーミッションの取得・許可方法を定めたプロトコル基本的にブラウザベース Facebook の情報
を使って、楽しいサービスを提供す
るよ!
個人情報の山
うーん?何を利用するのかな…
Facebook の友達リストが必要URL
URLFacebook の友達リストが必要
ABC っていうサイトが、友達リスト
見たいらしいけど、許可して大丈
夫?
Facebook にログイン
ブラウザURLアクセストーク
ン
URL アクセストークン
このアクセストークンがあれば、友達リストを取得出
来る
アクセストークン
OK!
雑多なやり取りを半ば自動でやってくれる
しかも、 Microsoft アカウント・ Google アカウント・ twitter アカウントも面倒見れますその他の OAuth 対応サイトにも、最小のコード追加で対応可能
DotNetOpenAuth って凄い! ヽ (^o^)丿
実際には ASP.NET のOAuthWebSecurity クラス
が仲介します
ところで。Facebook C# SDK を知っていますか?
Facebook C# SDKNuGet で導入可能なライブラリPM> Install-Package Facebookオフィシャル?ということになっている(ホントかなぁ、 Facebook Developer には記述ないんだけど)Facebook へのログイン処理Graph API でクエリ実行・記事 / 写真の投稿
おぉ、 Facebook だけなら、こっちの方がいいじゃん?え?
ログイン処理をどうするか?DotNetOpenAuth も Facebook C# SDK もログイン処理を行えるワどちらか一方でしか使えナイの?今は Facebook ダケだけど、将来的にはtwitter や Google アカウントにも対応したいワ。だから DotNetOpenAuth に統一シテ。
Facebook へのクエリも当然やりたい。まさか、アナタ、ドロ臭いコードをワタシに書かせるワケ?!
ポイントは、アクセストークン。OAuth の最終段階で、 Facebook の認可サーバーは、「アクセストークン」なる文字列を返すこのトークンはブラウザのURL ( QueryString )に乗せられて、我がサイトに到達する。
個人情報の山
URLアクセストーク
ン
URL アクセストークン
ここまでは、 DotNetOpenAuth で処理させて
…
アクセストークンをSDK に渡す
以降は Facebook C# SDK で。
アクセストークンを取り出す(DotNetOpenAuth)
ブラウザがキックしてきた URL (アクセストークン入り)を、 OAuthWebSecurity.VerifyAuthentication()に渡して解析させる解析した結果の、 AuthenticationResult.ExtraData.Keys コレクションに、” accesstoken” が含まれているかどうかをチェックして取り出す
アクセストークンを使う(Facebook C# SDK)
FacebookClient.AccessToken に、先の処理で取得したアクセストークン文字列をセット後はご自由に!
使用上のご注意:不正アクセスを助長するものではありません
ていうか出来ない
以下の記事が元ネタ
Using OAuth Providers with MVC 4 By Tom FitzMackenhttp://www.asp.net/mvc/tutorials/security/using-oauth-providers-with-mvc
完?
WPはどこに行ったんだよ!!
アプリで OAuth する場合認可サーバへのログインと承認のプロセスは、ブラウザを使用しなければならないWebBrowser コントロールを使用して、 Navigating で最終遷移をトラップ
個人情報の山
URLURL
Facebook の友達リストが必要
WebBrowser
コントロール
アプリから直接アクセス
アクセストークン
完
ご静聴ありがとうございました m(_ _)m