最近、twitterのID・パスワードを使ってログインできるサイトが増えてきましたが、
同じことを自分の運営するサイトでもやりたいと思っています。
その場合、プログラム的にはどのような流れになるんでしょうか。
ユーザーにtwitterのIDとパスワードを入力してもらい、
OAuthで「許可する」をクリックしてもらって、コールバックURLに戻ってきた後の処理をお教え願えますでしょうか。
(例えばOAuthトークンなどユーザーのどの情報をDBに保管すべきか など)
一般的にはID・パスワードもDBに保存してるんでしょうか。
できればtwitterのパスワードのようなプライベートなものをDBに保存したくないんですが・・・
また、数日間はログイン情報をCookieに保持し自動ログインさせたいですが、
仮にID・パスワードをDBに保存しないとすると、Cookie期限が切れた場合、
またOAuth認証が必要になるんでしょうか?
できるだけ具体的にお教えいただけると助かります。
※twitter APIでbot作成経験はあります
※PHPしか扱えませんので、PHPでの実装方法をご教示ください
※使用DBはMySQL5系です
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...
http://d.hatena.ne.jp/movapic/20090809/1249748017
OAuthという方式は、認証をTwitter側にすべて任せて
こちらは何もしません。
もちろんパスワードも保存しません。
IDだけは必要なので保存するしかないでしょう?
IDがいらないんだったら、そもそも認証要らないと思いますよ。
すみません。質問文がわかりにくいかもしれませんね・・・
twitterでOAuth認証するまではいいんですが、認証後にリダイレクトで自サイトに戻って「(twitterで)ログイン済み」というセッション(Cookie)を持ちまわる、ということがしたいのです。
しかも、セッションが切れた後(ブラウザを閉じた後)に、再度自サイトへアクセスした際にもCookieなどでログイン済みの状態にしたいです。
こういう場合に、OAuthで取得できる「oauth_token」はDBに保存するとして、他にどういう情報をDBに保存すべきかがわからなかったので。
受け取った oauth_token を自らのスクリプトで Cookie とサーバー側の DB or ファイルに保存します。
あと Twitter アカウントと、自サイトでのユーザーアカウントとの紐付けも必要。
oauth_token が帰ってきた時点で認証成功なので、パスワードは保存しなくても OK
ありがとうございます。参考になります。
自分で実験する時間がとれてませんが、
TwitterのIDとoauth_tokenをDBに保存するとして、
ログインを維持するために、たとえばIDをCookieに保存したとすると、
Cookie期限が切れた場合、またOAuth認証が必要になりますよね…
そこらへんはしょうがないですかね。
ありがとうございます。
OAuth認証自体は経験があるのでわかるんですが、認証後にその認証情報と自サイトとを連携する方法が知りたいです。