访问被阻止:授权错误[错误 400:invalid_request]

Access Blocked: Authorization Error[Error 400: invalid_request]

提问人:Samik Pandit 提问时间:10/5/2023 最后编辑:Samik Pandit 更新时间:10/6/2023 访问量:188

问:

为我的 React Native 应用程序配置了用于 Google 登录的 OAuth 同意屏幕。 但是,尝试使用“登录”按钮登录时显示错误。

Access blocked: Authorization Error

[email protected]

You can't sign in to this app because it doesn't comply with Google's OAuth 2.0 policy for keeping apps secure.

You can let the app developer know that this app doesn't comply with one or more Google validation rules.
Learn more about this error
If you are a developer of CodeBox(App Name), see error details.
Error 400: invalid_request

按照以下步骤操作:

  • 转到 OAuth 同意屏幕 -> 用户类型“外部” -> 应用程序名称“CodeBox” -> mail-id
  • 对于 Android 客户端 ID = 转到凭据 -> OAuth 客户端 ID -> 应用程序类型“Android” -> 提供包名称 (“package”: “com.panditsamik.codebox”) -> SHA-1 证书指纹 -> 创建
  • 对于 Web 客户端 ID:转到凭据 -> OAuth 客户端 ID -> 应用程序类型“Web 应用程序” ->名称 -> 授权的 Javascript 源(https://auth.expo.io) -> 授权的重定向 URI(https://auth.expo.io/@username/codebox)

app.json年,

"expo": {
    "name": "education-app",
    "slug": "codebox",
    "version": "1.0.0",
    "scheme": "codebox",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "userInterfaceStyle": "light",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
.
.
.

在Login.js组件中,单击“使用 Google 登录”按钮时,显示访问被阻止:授权错误[错误 400:invalid_request]

import {
  View,
  Text,
  Image,
  StyleSheet,
  SafeAreaView,
  Dimensions,
  TouchableOpacity,
} from "react-native";
import React from "react";
import Colors from "../Shared/Colors";
import { FontAwesome } from "@expo/vector-icons";
import * as WebBrowser from "expo-web-browser";
import * as Google from "expo-auth-session/providers/google";

export default function Login() {
  WebBrowser.maybeCompleteAuthSession();
  const [request, response, promptAsync] = Google.useAuthRequest({
    androidClientId:
      "....apps.googleusercontent.com",
    expoClientId:
      "....apps.googleusercontent.com",
  });
  return (
    <SafeAreaView>
      <Image
        source={require("./../Assets/Images/login.png")}
        style={styles.backgroundImage}
      />
      <View style={styles.container}>
        <Text style={styles.textStyle} numberOfLines={2}>
          Welcome to Education App
        </Text>
        <Text style={styles.loginText}>Login/SignUp</Text>
        <TouchableOpacity style={styles.button} onPress={() => promptAsync()}>
          <FontAwesome name="google" size={24} color="white" />
          <Text style={styles.buttonText}>Sign In with Google</Text>
        </TouchableOpacity>
      </View>
    </SafeAreaView>
  );
}

作为解决方案,我得到了您必须确保在谷歌云控制台中添加了回调 url 和所有内容

我刚刚通过 ChatGPT 检查了它,上面写着“确保 Google Cloud Console 配置中的授权重定向 URI 与您在应用程序的 OAuth 代码中使用的重定向 URI 匹配。

世博会客户端 ID 中的授权重定向 URI 为 (https://auth.expo.io/@username/codebox)。 OAuth 同意屏幕设置中的授权域 expo.io 尽管如此,它仍然不起作用。

Android React-Native OAuth-2.0 Expo Google登录

评论


答: 暂无答案