自サイトでのtwitterアカウントを使ったログイン機能実装について。


最近、twitterのID・パスワードを使ってログインできるサイトが増えてきましたが、
同じことを自分の運営するサイトでもやりたいと思っています。

その場合、プログラム的にはどのような流れになるんでしょうか。

ユーザーにtwitterのIDとパスワードを入力してもらい、
OAuthで「許可する」をクリックしてもらって、コールバックURLに戻ってきた後の処理をお教え願えますでしょうか。
(例えばOAuthトークンなどユーザーのどの情報をDBに保管すべきか など)

一般的にはID・パスワードもDBに保存してるんでしょうか。
できればtwitterのパスワードのようなプライベートなものをDBに保存したくないんですが・・・

また、数日間はログイン情報をCookieに保持し自動ログインさせたいですが、
仮にID・パスワードをDBに保存しないとすると、Cookie期限が切れた場合、
またOAuth認証が必要になるんでしょうか?

できるだけ具体的にお教えいただけると助かります。

※twitter APIでbot作成経験はあります
※PHPしか扱えませんので、PHPでの実装方法をご教示ください
※使用DBはMySQL5系です

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/06/23 10:50:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:koriki-WeKan No.1

回答回数342ベストアンサー獲得回数20

ポイント27pt

OAuth認証の仕組みはhttp://www.ilovex.co.jp/blog/system/projectandsystemdevelopment/...が詳しい。


>一般的にはID・パスワードもDBに保存してるんでしょうか。

それではOAuth認証の意味がない。

DBに保管せずに逐次認証するのがOAuth認証の便利なところである。


>ログイン情報をCookieに保持し

ログイン情報をCookieに保存するのは危険である。常識的にはセッション情報を保存する。

これはOAuth認証とは関係ない機能なので、自分で実装することになる。


PHPでTwitter APIのOAuthを使う方法まとめ

http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php...

id:otaxa

ありがとうございます。

OAuth認証自体は経験があるのでわかるんですが、認証後にその認証情報と自サイトとを連携する方法が知りたいです。

2010/06/16 12:01:17
id:hanako393 No.2

回答回数1142ベストアンサー獲得回数87

ポイント27pt

http://d.hatena.ne.jp/movapic/20090809/1249748017

OAuthという方式は、認証をTwitter側にすべて任せて

こちらは何もしません。

もちろんパスワードも保存しません。


IDだけは必要なので保存するしかないでしょう?

IDがいらないんだったら、そもそも認証要らないと思いますよ。

id:otaxa

すみません。質問文がわかりにくいかもしれませんね・・・

twitterでOAuth認証するまではいいんですが、認証後にリダイレクトで自サイトに戻って「(twitterで)ログイン済み」というセッション(Cookie)を持ちまわる、ということがしたいのです。

しかも、セッションが切れた後(ブラウザを閉じた後)に、再度自サイトへアクセスした際にもCookieなどでログイン済みの状態にしたいです。

こういう場合に、OAuthで取得できる「oauth_token」はDBに保存するとして、他にどういう情報をDBに保存すべきかがわからなかったので。

2010/06/16 12:11:15
id:niwa-mikiho No.3

回答回数516ベストアンサー獲得回数40

ポイント26pt

受け取った oauth_token を自らのスクリプトで Cookie とサーバー側の DB or ファイルに保存します。

あと Twitter アカウントと、自サイトでのユーザーアカウントとの紐付けも必要。


oauth_token が帰ってきた時点で認証成功なので、パスワードは保存しなくても OK

id:otaxa

ありがとうございます。参考になります。

自分で実験する時間がとれてませんが、

TwitterのIDとoauth_tokenをDBに保存するとして、

ログインを維持するために、たとえばIDをCookieに保存したとすると、

Cookie期限が切れた場合、またOAuth認証が必要になりますよね…

そこらへんはしょうがないですかね。

2010/06/22 00:15:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません