我正在使用 facebook connect 来授权我网站上的用户,但我也为用户弹出了第三方服务。该第三方服务也使用 facebook connect 来授权其用户。
我不希望每个用户都被迫经历两次授权阶段。有没有办法让用户在登录我的服务时授权第三方服务获取一些令牌并在我弹出第三方服务时使用它?
我正在使用 facebook connect 来授权我网站上的用户,但我也为用户弹出了第三方服务。该第三方服务也使用 facebook connect 来授权其用户。
我不希望每个用户都被迫经历两次授权阶段。有没有办法让用户在登录我的服务时授权第三方服务获取一些令牌并在我弹出第三方服务时使用它?
您可以使用 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.
}
});
因此,用户只需登录一次,并且只需要第一次授权该应用程序。您可以在此处阅读有关此方法的更多信息。