私のアプリはクライアント側で Facebook Javascript SDK 承認を使用し、承認されたユーザー アプリは Facebook API からアクセス トークンをフェッチし、署名付きのリクエストと提供された facebook cookie を使用しcode
て、データベースに保存します。
すべて正常に動作していますが、保存されているアクセス トークンをいつ更新する必要があるのでしょうか? ユーザーがパスワードを変更し、再度サインイン/接続した場合はどうなりますか。
私が理解しているように、彼女は新しいアクセス トークンを取得し、アプリは Facebook からそれをロードする必要があります。しかし、いつ新しいトークンを確認する必要があるかをどのように理解できますか? 各ユーザーの 1 秒あたりのリクエスト数が少ないため (彼女がパスワードを変更しなかった場合)、Facebook の Cookie を使用した各リクエストのチェックは機能しません。それとも、私は何か間違ったことをしていますか?
つまり:
- クライアント側でユーザーを承認しました
- 署名付きリクエストでクッキーを作成しました
- 署名されたリクエストは、サーバー側でユーザーを承認するのに十分です(ユーザーの資格情報を検証します)
access token
ユーザーユーザーが自分のアプリにリクエストを行うときはいつでも、Facebook APIを呼び出すことで取得できます(code
署名付きリクエストが必要なため)。access token
だから、保存していないときや既存のaccess token
有効期限が切れたときにやっています。access token
データベースに保存され、いつでも、別のスレッドで、おそらく数分後に使用できます (つまり、署名付きのリクエストを含むユーザー リクエストと Cookie がないことを意味します)。- 有効期限が切れていない保存
access token
が、Facebook側で無効になっている場合はどうなりますか? new をフェッチする必要がありaccess token
ますが、この時点で Cookie が失われています。
現在code
、署名されたリクエストからデータベースに保存し、無効であることがわかったら、access token
それをロードしようとする方法しかありません。しかし、それは適切な方法であり、ほとんどの場合にはあまり使用できないと確信しています