React Native Expo Google响应,身份验证为空

mgdq6dx1  于 2023-02-16  发布在  React
关注(0)|答案(1)|浏览(162)

我正在尝试使用Expo创建React Native应用程序并使用Google进行身份验证。我正在遵循此文档。我希望response.authentication.accessToken是字符串访问令牌,而不是null。我的错误消息是Typeerror: null is not an object (evaluating 'response.authentication.accesstoken')
下面是我的代码的相关部分:

WebBrowser.maybeCompleteAuthSession();

export default function App() {
  const [accessToken, setAccessToken] = React.useState(null);
  const [user, setUser] = React.useState(null);
  const [request, response, promptAsync] = Google.useIdTokenAuthRequest({
    expoClientId: "[REDACTED].apps.googleusercontent.com",
    webClientId: "[REDACTED].apps.googleusercontent.com",
    iosClientId: "[REDACTED].apps.googleusercontent.com",
    androidClientId: "[REDACTED].apps.googleusercontent.com",
  });

  
  React.useEffect(() => {
    if(response?.type === "success") {
      console.log(response);
      setAccessToken(response.authentication.accessToken);
      accessToken && fetchUserInfo();
    }
  }, [response, accessToken])

为什么是空的?

lyr7nygr

lyr7nygr1#

我找到的解决方案是切换函数,Google.useIdTokenAuthRequest到Google.useAuthRequest。我还修复了app.json中的bundleIdentifier和android包,以完全匹配我的slug(存在大小写问题)。

相关问题