使用oauth2服务(如facebook)授权我的应用访问第三方应用

时间:2013-08-20 21:40:01

标签: facebook-graph-api oauth-2.0 facebook-oauth

我正在使用facebook connect来授权我的网站上的用户,但我也为用户弹出第三方服务。 此第三方服务也使用facebook connect来授权其用户。

我不希望强迫每个用户两次完成授权阶段。 当我登录我的服务获取一些令牌并在弹出第三部分服务时使用它时,我是否可以要求用户授权第三方服务?

1 个答案:

答案 0 :(得分:0)

您可以使用Facebook SDK的getLoginStatus方法来确定用户是否已经授权您的应用并且当前已登录。如果用户使用FB登录您的网站,则无需再次登录。

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    // the user is logged in and has authenticated your
    // app, and response.authResponse supplies
    // the user's ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
  } else if (response.status === 'not_authorized') {
    // the user is logged in to Facebook, 
    // but has not authenticated your app
  } else {
    // the user isn't logged in to Facebook.
  }
 });

因此,用户只需登录一次,并且必须首次授权该应用。您可以阅读有关此方法的更多信息here