用户身份验证与Facebook

时间:2016-10-17 02:23:38

标签: facebook authentication

当用户使用Facebook帐户登录时,这是一个关于从后端安全检索用户记录的问题。

loginToFacebook = () => {
  FB.login((response) => {
    FB.api('/me', {fields: 'id,name,timezone,email,age_range,picture'}, (response) => {
      this.props.receiveCurrentUser({
        uid: response.id,
        email: response.email,
        name: response.name,
        timezone: response.timezone,
        picture: response.picture.data.url,
        minAge: response.age_range.min,
      })
    })
  }, {scope: 'email, public_profile'})
}

此时,我有用户的信息。我现在只尝试使用uid从后端找到用户记录。

@user = User.find_by(uid: params[:uid]) if params[:uid]
head :unprocessable_entity unless @user

但是,如果有人知道任何人的Facebook帐户({1}},那么这很容易受到损害。我考虑过在后端存储user_id并找到如下所示的用户:

access_token

问题是@user = User.find_by(access_token: params[:access_token]) if params[:access_token] head :unprocessable_entity unless @user 到期,而您从Facebook登录获得的access_token可能与后端不同步。

这样做的正确方法是什么?

提前感谢您的建议。

0 个答案:

没有答案