仅在真正的oauth之后重定向

时间:2012-01-12 15:53:01

标签: facebook sdk

是否有可能我只会在成功验证后加载应用页面?如果oauth成功与否,我可以重定向到不同的页面吗?

<body>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<div id="fb-root"></div>
<script>
FB.init({
        appId: '.....', 
        status: true, 
        cookie: true,
        xfbml: true,
        oauth: true
    });
FB.login({
      scope: 'email',
    });
</script>

非常感谢。

2 个答案:

答案 0 :(得分:0)

我不确定你要做什么,但这可能对你有帮助。

FB.login( function( response ) {
      if ( response.authResponse && response.authResponse.accessToken ) {
        // redirect to SUCCESS
      } else {
        // redirect to FAILURE
      }
    }, { scope: 'email' } );    

答案 1 :(得分:0)

您使用的是OAuth2吗?您真的不需要在等待access_token返回的位置重定向。 OAuth2流程中有几个重定向:

  1. 您将用户定向到 https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL

  2. 一旦用户登录(如有必要)并接受您的应用程序,他们就会被重定向回您的应用程序(或至少重定向到您的重定向页面)。 FB在查询字符串中传递授权令牌。 此时,您无需再重定向用户。

  3. 您现在可以向以下网址发送请求,但您无需将用户重定向到此网址: https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_URLclient_secret=YOUR_APP_SECRET&code=authorizationcode

  4. FB返回响应正文中的access_token。

  5. 然后,您可以根据该响应重定向您的用户。换句话说,您的用户位于步骤3和4的同一页面上,并且在步骤4结束时,您可以根据需要将其重定向到其他位置。