如何通过google登录使用create-react-app创建的Web应用并使用firebase获取正确的tokenID / accessToken

时间:2018-05-12 12:52:10

标签: javascript reactjs firebase firebase-authentication google-signin

我正在学习如何做出反应并实施Google登录身份验证。我使用google firebase作为后端。我想做一组操作,只有在用户通过身份验证时才能说出“创建订单”。我正在使用signInWithPopup方法和.then我得到一个result对象,我从中提取.credential.accessToken并将其设置为状态。然后,当我创建订单时,我使用该令牌传递 /orders.json?auth=<accessToken>。但我得到401-unauthorized access作为回报。 Google用户在firebase中创建得很好,并且还会在firebase中正确更新其最后签名的日期戳。

订单提交代码段:

axios
      .post("/orders.json?auth=" + accessToken, orders)
      .then(Response => {
        dispatch(submitOrderStart(Response.data.name, orders));
        alert("Order has been added..!!");
      })

登录方法代码段:

firebaseApp
      .auth()
      .signInWithPopup(provider)
      .then(result => {
        console.log(result);
        this.props.onGoogleSignedIn(result);
      });

Firebase中定义的规则:

{

      "rules": {
            "ingredients" : {
                ".read": "true",
                ".write": "true"
            },
          "orders" : {
            ".read" : "auth != null",
            ".write" : "auth != null",
            ".indexOn" : ["userId"]
          }
      }
    }

如果需要更多详细信息,请与我们联系。感谢。

0 个答案:

没有答案