0

我正在爲我的站點寫Facebook登錄。我正在使用JavaScript Sdk,但我不明白一件事。Facebook訪問令牌[Javascript SDK]

function fbLogin() { 
    FB.login(function(response) { 
    if (response.authResponse) { 
    var token=response.authResponse.accessToken; 
    FB.api('/me', function(response) { 

     $.get('main/check_facebook_status/'+token,function(data) { 
      if (data == "true") { 
       $('#r_name').val(response.name); 
       $('#r_username').val(response.username); 
       $('#r_email').val(response.email); 
       $('#fbid').val(response.id); 
       $('#fbtoken').val(token); 


      } 
     }) 
    }); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}, {scope: 'email, publish_stream'}); 
    } 

我可以信任他訪問令牌(response.authResponse.accessToken)以識別用戶嗎? Facebook可以更改訪問令牌嗎?如果更改訪問令牌,我如何識別用戶?

PS:對不起,我的英文不好

+0

它看起來像是在這裏進行服務器端調用以獲取API的詳細信息 - 那麼爲什麼您之前在客戶端做同樣的事情呢? – CBroe

+0

您不使用訪問令牌來標識用戶 - 您使用它來獲取有關標識它們的信息。 – CBroe

+0

哪些信息可以識別用戶? Facebook身份證可以通過,我不能出於安全原因使用。 –

回答

3

我能相信他的訪問令牌(response.authResponse.accessToken)用於識別用戶?

當然是!

Facebook可以更改訪問令牌嗎?

沒有。但它會在2小時後過期,因此您必須再次獲取令牌。如果你將來想使用這個令牌,您可以將令牌的壽命延長至60天。

你可以閱讀更多關於訪問令牌here


[編輯]

令牌也變得在下列情況下─

  • 用戶無效改變密碼
  • 用戶去授權該應用
  • 用戶移除應用程序
+0

如果用戶嘗試登錄第61天? –

+1

那麼你不能使用該標記。您必須重複該過程(在答案中的鏈接中提到)來刷新令牌 –

+0

謝謝:)我從php sdk中的訪問令牌獲取用戶ID :) –