首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从服务器收到状态代码401 :未经授权的react native mapbox

从服务器收到状态代码401 :未经授权的react native mapbox
EN

Stack Overflow用户
提问于 2021-04-30 16:08:49
回答 1查看 397关注 0票数 0

在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文件是

代码语言:javascript
运行
复制
// 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'] ?: "" 
          }
        }
    }
}

EN

回答 1

Stack Overflow用户

发布于 2021-08-31 07:16:35

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

代码语言:javascript
运行
复制
MAPBOX_DOWNLOADS_TOKEN=YOUR_SECRET_ACCESS_KEY

当然,您应该用实际的访问密钥替换YOUR_SECRET_ACCESS_KEY。为了防止Android Studio无法找到这个新创建的gradle.properties文件,我建议在您的项目gradle.properties文件中添加上述行的副本。这就是解决我的问题的方法,尽管我不确定这是否有任何安全隐患。最后,您的build.gradle应该包含以下内容:

代码语言:javascript
运行
复制
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
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67330386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档