React Native OAuth TypeError:无法读取未定义的属性(读取“授权”)

问题描述 投票:0回答:1

(stackoverflow上的其他类似问题没有解决我的问题)。

当我尝试调用

authorize
(react-native-app-auth 库中的函数)时,我收到此错误:“TypeError:无法读取未定义的属性(读取“授权”)”。

这是一个最小的可重现示例:

import React, { useState } from "react";
import { Text, View, Button, Linking } from "react-native";

import { authorize } from 'react-native-app-auth';

export default function App() {
  const config = {
    issuer: 'https://accounts.google.com',
    clientId: 'GOOGLE_OAUTH_APP_GUID.apps.googleusercontent.com',
    redirectUrl: 'com.googleusercontent.apps.GOOGLE_OAUTH_APP_GUID:/oauth2redirect/google',
    scopes: ['openid', 'profile', 'email'],
  };
  
  const handleLogin = async () => {
    try {
      console.log(authorize); // line 1; this line shows a function present
      const result = await authorize(config); // line 2
      console.log('Authorization Response', result);
    } catch (error) {
      console.error('Hey! Theres an authorization error', error);
    }
  };

  return (
    <View>
      <Button
        title={"google"}
        onPress={() => handleLogin()}
        key={"google"}
      />
    </View>
  );
}

这是我尝试过并发现的:

我已经完成了

npm install react-native-app-auth
。我使用
npm run web
运行了反应应用程序。该错误来自于在
authorize
函数内标记为“第 2 行”的行中调用
handleLogin

我已经在“第 1 行”上完成了 console.log,看看那里是否存在某些功能,并且确实存在;

f authorize(_ref4) {
  var issuer = _ref4.issuer,
    redirectUrl = _ref4.redirectUrl,
    clientId = _ref4.clientId,
    clientSecret = _ref4.clientSecret,
    scopes = _ref4.scopes,
    _ref4$useNonc…

那么为什么说

authorize
未定义?

clientSecret
内部添加
config
也不能解决问题。我已经尝试了所有我能想到的修复方法,所以我不知道出了什么问题。如果有任何帮助,我将不胜感激。

这是我的软件包的版本:

"react": "18.2.0",
"react-native": "^0.72.6",
"react-native-app-auth": "^7.1.0",
"react-native-web": "~0.19.6",

如果还有任何我没有提到的对此有帮助的信息,我很乐意提供。谢谢!

javascript reactjs react-native oauth-2.0
1个回答
0
投票

对于我来说,

我也遇到了这个问题。我通过再次编译应用程序解决了这个问题。

此评论帮助我解决了问题 https://github.com/FormidableLabs/react-native-app-auth/issues/87#issuecomment-511672939

他的错误总是与错误配置有关。确保您已按照设置说明进行操作,链接了react-native,并使用react-native run-ios或react-native run-android重建了您的应用程序。

我关注的内容:

  1. 安装了软件包
    react-native-app-auth
  2. 按照文档检查配置。
  3. 清除存储,卸载应用程序。
  4. Ran
    yarn android
    指的是package.json中的
    react-native run-android
  5. 成功,我能够从我的身份验证提供商 (GitHub) 看到登录页面
© www.soinside.com 2019 - 2024. All rights reserved.