OAuth
TwitterのAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 リクエストボディを指定して、リクエストを送る前にoauth!メソッドを呼ぶだけ。 #!/usr/bin/ruby require 'rubygems' require 'net/http' requi…
TwitterのAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 2Legged OAuthリクエスト OAuthConsumerライブラリを使う。 OAMutableURLRequestは、NSMutableURLRequestを継承したクラス。 OAConsumerは、コ…
Openpearで登録してあったHTTP_OAuthProviderをPearにパッケージの提案をしてみようかと。 今回は、とりあえずドラフトの作成まで。 HTTP_OAuthProvider - Openpear http://openpear.org/package/HTTP_OAuthProvider アカウント発行 待たされた。 Your accou…
コンシューマのライブラリに追加した方が自然なのかなと思ったけど、機能的にはプロバイダだから、HTTP_OAuthProviderに追加。 mixiではSAPという呼び方をしてるけど、この用語はOpenSocial共通の言葉なんだろうか…? Social Application Providerの略らしい…
HTTP_OAuthProviderのトークン保持は今までCache_Liteしか使えなかった。 流石にそれだけじゃあ寂しかったので追加。 Pecl::MemcachedとPecl::Memcacheを追加。 世の中の流れとしては、Pecl::Memcached推奨らしい…。 トークンの保持するクラスは、ストアドラ…
以下メソッドを追加した。 ・getRequestToken ・getAuthorizeURL ・getAccessToken メソッド名は、HTTP_OAuth_Consumerと同じにした。 ただ、引数はちょっと違う。 example 前回と同じく、以下ソースを修正。 HTTP_OAuthを利用してTwitterのOAuth認証を行う …
公開した。 Openpearでパッケージを公開するとメールアドレスも公開されるという事をさっき知った。 もういいやと思って、文中のPear準拠のコメント部分で本名も晒した。 プログラムは去年書いたものをベースにしたんだけど、結構書き方も変わった。 なかな…
公開した。 HTTP_OAuthConsumer - Openpear http://openpear.org/package/HTTP_OAuthConsumer Revision 1978: /HTTP_OAuthConsumer/trunk http://svn.openpear.org/HTTP_OAuthConsumer/trunk/ 機能 HTTP_OAuthとの主な違いは、シグネチャ方式に、HMAC-SHA1だ…
本気出して考えた。 サンプル実装もした。 クライアントプログラムはPHPで作ったものを公開。 サーバ側はPython。 ↓これ。 OAuth Encryption http://oauth-encryption.appspot.com/ OAuth Encryptionとは 2-Legged OAuth認証(RSA-SHA1方式)に暗号化と改ざ…
ここ数週間、合間を見てちまちま作ってた。 大体出来た。 パッケージ名は、HTTP_OAuthServer。(暫定) 機能 ・2legged OAuth認証。 ・リクエストトークン発行。(3legged OAuth) ・ユーザ認可。(3legged OAuth) ・アクセストークン交換。(3legged OAuth) ・保…
それじゃあ誰の権限を持ってるか解らない。 今回の変更点。 consumer_keyを内部で持ってるSerialに置き換えた。 person_idもデータベースに入れる。(Authorizeの時) もう少しだけ親切なAuthorizeページ作成。 どうやら今週は土曜も日曜も仕事のようです。 残…
実装してみた。 仕様は前回の記事参照。 作っているうちにどんどん混乱してくるから、先にまとめておいてよかった。 今回の内容は、オフィシャルドキュメントの内容ではなく、個人的にこうやった、というまとめ。 今週の月曜日、mixiアプリが正式コンテンツ…
2legged OAuthは出来て、今度は3legged OAuth。 サービスプロバイダとして3legged OAuthは必須。 「OAuth Core 1.0」はセキュリティに問題があるらしく、その問題点を解決した「OAuth Core 1.0a」(OAuth Core 1.0 Revision A)を使う。 他人様の日本語訳とか…
まずはpersonだけ。 適当翻訳。 おそらくサービスプロバイダに用意されているであろう標準的なフィールド。 id ユニークな識別子。必須。 displayName エンドユーザ向けの表示に適した名前。必須。 name 名前。 formatted 表示用のフルネーム。 familyName …
サーバ側の認証処理をするクラス。 長いから全部は書かないけど。 header = apache_request_headers(); $this->input = file_get_contents('php://input'); $this->http_method = isset($this->header['HTTP_X_HTTP_METHOD_OVERRIDE']) ? $this->header['HTT…