0
からのコールバックを処理しながら、

FBのアカウントに関連付けられたメールはシナリオを、次の点を考慮取得:Facebookの

  • 私は自分のアプリケーションでユーザーを認証するための両方の方法(電子メール/パスワードを使用してFBのアカウントを使用して)をサポートします。
  • 電子メールを使用して自分のアプリケーションにサインアップしたユーザー([email protected]
  • その後、彼は彼のFBのアカウントを使用してサインインしようとします(ところで。彼は、電子メール/ PWDを使用してサインアップするために使用したのと同じメールアドレスを持っています)

thisチュートリアルによると、サインインしながら、フェイスブックからのコールバックを処理すると、以下のように見える(と、それは完全に正常に動作しなければならない):

@RequestMapping("/auth/facebook/callback") 
public RedirectView callBack(@RequestParam("code") String code, 
          @RequestParam("state") String state, 
          HttpSession session) { 
    String stateFromSession = (String) session.getAttribute(STATE); 
    session.removeAttribute(STATE); 
    if (!state.equals(stateFromSession)) { 
    return new RedirectView("/login"); 
    } 

    AccessGrant accessGrant = getAccessGrant(code); 

    String facebookUserId = getFacebookUserId(accessGrant); 
    session.setAttribute("facebookUserId", facebookUserId); 
    return new RedirectView("/logged-in"); 
} 

質問 問題は、私がFBユーザーIDだけを知っていて、自分の認証トークンがメールを取得するために使用していないために、自分のデータベースにこのような電子メールを持っているユーザーがFacebookのユーザーIDでどのように判断できるかです。 FBグラフ?

ゴール 私の質問がはっきりしていることを願います。私が達成しようとしているのは、彼のFBアカウントに電子メールとパスワードを使ってサインアップして作成したユーザーアカウントを、自分のアプリケーションにサインインするための追加オプションを提供することです。

答えて

1

ああ、私は自分で答えを見つけました。 AccessGrantはaccessToken

accessGrant.getAccessToken() 

今私は(ユーザーは私に、彼は電子メールだフェッチする権限を付与されたと仮定して)電子メールを取得するために、FBのユーザIDとアクセストークンを使用して、FBのグラフを呼び出すことができますを返すメソッドを持っています。

関連する問題