Github GraphQLAPI,硬编码访问令牌工作,试图混淆它不工作
下面是我的apollo客户端设置,当我对GitHub上创建的访问令牌进行硬编码并尝试ping端点时,它工作正常,我得到数据,我可以使用它等等。我尝试将硬编码值替换为环境变量,但随后我开始从GitHub收到401未经授权的错误。。我记录了环境变量,得到了硬编码时使用的字符串。我真的不明白为什么。有人能帮我吗Github GraphQLAPI,硬编码访问令牌工作,试图混淆它不工作,github,graphql,create-react-app,apollo,github-api,Github,Graphql,Create React App,Apollo,Github Api,下面是我的apollo客户端设置,当我对GitHub上创建的访问令牌进行硬编码并尝试ping端点时,它工作正常,我得到数据,我可以使用它等等。我尝试将硬编码值替换为环境变量,但随后我开始从GitHub收到401未经授权的错误。。我记录了环境变量,得到了硬编码时使用的字符串。我真的不明白为什么。有人能帮我吗 const httpLink = createHttpLink({ uri: 'https://api.github.com/graphql', }); const authLink
const httpLink = createHttpLink({
uri: 'https://api.github.com/graphql',
});
const authLink = setContext((_, { headers }) => {
// const token = process.env.REACT_APP_GITHUB;
return {
headers: {
...headers,
// authorization: token ? token : null
authorization: `bearer fullAccessTokenString`
}
}
});
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
});
如果您使用环境变量,它将在构建时被Webpack替换为实际值。您无法在前端代码中包含值并阻止其他人读取它 您需要实现某种身份验证流(如“使用GitHub登录”按钮),允许您的用户在使用应用程序时获得自己的访问令牌,而不是直接在代码中包含访问令牌。这不仅更加安全,而且还意味着A)如果访问令牌过期或被吊销,您不必重新部署应用程序;B)由于每个用户都将使用自己的配额,因此您不太可能达到API的速率限制