使用React Native 的Auth0

kr98yfug  于 2022-12-14  发布在  React
关注(0)|答案(1)|浏览(176)

我正在尝试Example repo。但当执行此调用时:const { accessToken } = await getCredentials();,访问令牌为undefined
我已创建Auth0应用程序并复制我的domainclientId
所以app.json中的插件看起来像这样:

"plugins": [
      [
          "react-native-auth0",
          {
              "domain": "{MY_DOMAIN}"
          }
      ]
    ],

也有Auth0Provider,看起来像这样:Auth0Provider domain={config.domain} clientId={config.clientId}
CallbackLogout URL都已设置。以下是提供的示例中的图像:

getCredentials在客户端使用Google登录后继续抛出undefined

f3temu5u

f3temu5u1#

这里有两种方法。
1.使用loader并等待直到数据加载。
1.使用useEffect() with Promise()或仅使用useEffect()
App.js

const { user, getCredentials} = useAuth0();
const [isLoading, setIsLoading] = useState(false);

const getUserMetadata = async () => {
    setIsLoading(true);
    const tokenData = await getIdTokenClaims();
    if (tokenData) {
      localStorage.setItem(USER_OBJECT_KEY, tokenData['__raw']);
      setIsLoading(false);
    }
  };

useEffect(() => {
    const storedAccessToken = localStorage.getItem(USER_OBJECT_KEY);
    if (!storedAccessToken) {
      getUserMetadata();
    }
  }, [getCredentials, user]);

if (isLoading) {
    return <div>Loading...</div>;
  }

return (
   Your code.....
)

相关问题