【问题标题】:Received status code 401 from server: Unauthorized react native mapbox从服务器收到状态码 401: Unauthorized react native mapbox
【发布时间】:2021-08-31 15:16:34
【问题描述】:

在 react native 中使用 mapbox 时出现授权错误

https://api.mapbox.com/downloads/v1/navigation/android/maven/com/mapbox/navigation/ui/1.5.0/ui-1.5.0.pom'。从服务器收到状态码 401:未授权

我正在使用这个包(https://www.npmjs.com/package/@homee/react-native-mapbox-navigation

根据包文档我也在做同样的事情。

我的 build.gradle 文件是

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "29.0.3"
        minSdkVersion = 21
        compileSdkVersion = 29
        targetSdkVersion = 29
        ndkVersion = "20.1.5948944"
    }
    repositories {
        google()
        jcenter()
          maven {
          url 'https://api.mapbox.com/downloads/v1/navigation/android/maven'
          authentication {
            basic(BasicAuthentication)
          }
          credentials {
            username = "mapbox"
            password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: "" 
          }
        }
    }
    dependencies {
        classpath("com.android.tools.build:gradle:4.1.0")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
        maven { url 'https://mapbox.bintray.com/mapbox' }
        maven { url 'https://www.jitpack.io' }
        maven {
          url 'https://api.mapbox.com/downloads/v1/navigation/android/maven'
          authentication {
            basic(BasicAuthentication)
          }
          credentials {
            username = "mapbox"
            password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: "" 
          }
        }
    }
}

【问题讨论】:

  • 您的凭据是否正确?

标签: react-native mapbox


【解决方案1】:

我最近遇到了类似的问题。我的第一个建议是,如果您使用他们的公共访问令牌,请从 Access Tokens 创建一个新令牌,并确保检查了下载:读取范围。然后在“your_projects_directory.gradle”(对我来说是 C:\Users\USERNAME\AndroidStudioProjects\.gradle)中创建一个 gradle.properties 文件,并粘贴以下行:

MAPBOX_DOWNLOADS_TOKEN=YOUR_SECRET_ACCESS_KEY

当然,您应该将 YOUR_SECRET_ACCESS_KEY 替换为您的实际访问密钥。以防 Android Studio 无法找到这个新创建的 gradle.properties 文件,我建议将上述行的副本添加到您的项目 gradle.properties 文件中 [这是解决我的问题的原因] 虽然我不确定这是否有任何安全隐患。 最后你的 build.gradle 应该包含这个:

maven {
        url 'https://api.mapbox.com/downloads/v2/releases/maven'
        authentication {
            basic(BasicAuthentication)
        }
        credentials {
            // Do not change the username below.
            // This should always be `mapbox` (not your username).
            username = 'mapbox'
            // Use the secret token you stored in gradle.properties as the password
            password = System.getenv("MAPBOX_DOWNLOADS_TOKEN") ?: project.property("MAPBOX_DOWNLOADS_TOKEN") as String
        }
    }

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2019-03-24
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多