如何正确使用通过Firebase身份验证获得的Facebook令牌?

时间:2017-05-31 02:15:08

标签: javascript facebook firebase firebase-authentication

当这个人想通过Facebook注册时,我试图找到一个人的名字和姓氏,但想知道是否存在安全问题。

根据document from Firebaseanswer from Stack Overflowexplanation about parameters from Facebook website,我写了以下代码:

firebase.auth().getRedirectResult().then(function(result) {
   var token = result.credential.accessToken;
   FB.api('/me', {fields: 'last_name', access_token: token}, function(response) {
   console.log(response);
   })
})

我主要担心的是,根据Facebook,它说:

  

注意的一个参数是access_token,您可以使用它来使用页面访问令牌进行API调用。 不应在此SDK中使用应用访问令牌,因为它是客户端的,并且您的应用秘密会被曝光。"

看起来我不能用这种方法来获取用户的名字和姓氏。

1 个答案:

答案 0 :(得分:2)

从Firebase 4.0.0开始,将在UserCredential类型的结果中直接返回其他IdP数据。您不应该向Facebook进行额外的API调用以获取姓/名等数据:

<http auto-config="true">
    <intercept-url pattern="/home**" access="hasAnyRole('ROLE_ADMIN','ROLE_USER')" />
    <form-login 
        login-page="/login" 
        default-target-url="/home" 
        login-processing-url="/j_spring_security_check" 
        authentication-failure-url="/login?error" 
        username-parameter="username"
        password-parameter="password" />
    <logout logout-success-url="/login?logout"  />
    <csrf />
</http>

});