既知のソーシャル ネットワーク (Twitter、FB、G+ など) をログイン プロバイダーとして使用する基本的なログイン システムを実装しました。ログイン プロセスは正常に機能していますが、問題はユーザーのログイン ステータスを検出することです。たとえば、ユーザーが Twitter アカウント経由でログインしていることを確認するには、次のことを行う必要があります。
- 最初のチェックとして、ローカル Cookie 内に OAuth トークンと OAuth トークン シークレット (両方とも安全に暗号化されている) が存在するかどうかをチェックします。
- これらの Cookie が存在する場合。両方が有効であることを確認する必要があります。そのため、Twitter の API リソースを要求
/account/verify_credentials.json
し、応答のステータス コードが200 OK
(そうでない場合、ユーザーのトークンが無効である)であることを確認する必要があります。
したがって、ご覧のとおり、2 番目のチェックは、特にリクエストごとに実行した場合に非常にコストがかかります。例として、ユーザーがログインしている場合、[ログイン] ボタンを表示する理由がないためです (これはヘッダー内 - ヘッダーはすべてのページに存在します)
ユーザーのログイン状態を確認するための、(OAuth プロバイダー間で) 標準化されたより良い方法はありますか?