【发布时间】:2021-04-29 05:57:33
【问题描述】:
我正在尝试在 react js 中向 apollo 客户端添加授权令牌以让用户登录...
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router } from 'react-router-dom';
import { ThemeProvider } from 'react-jss';
import Theme from 'resources/theme';
import Routes from 'routes';
import './index.css';
import * as serviceWorker from './serviceWorker';
import { Auth0Provider } from "@auth0/auth0-react";
import 'bootstrap/dist/css/bootstrap.min.css';
import ReactNotification from 'react-notifications-component'
import './components/orders/fonts/NotoSansJP-Regular.otf'
import 'react-notifications-component/dist/theme.css'
import { ApolloProvider , ApolloClient, InMemoryCache } from '@apollo/client';
import { useAuth0 } from "@auth0/auth0-react";
const client = new ApolloClient({
uri: process.env.REACT_APP_API_BACK ,
headers: {
Authorization: `Bearer ${accessToken}` // doesn’t work
},
cache: new InMemoryCache()
});
ReactDOM.render(
<Auth0Provider
domain= {process.env.REACT_APP_AUTH0_DOMAIN }
clientId= {process.env.REACT_APP_AUTH0_CLIENT_ID}
redirectUri={window.location.origin}
audience={process.env.REACT_APP_AUTH0_AUDIENCE}
scope="warehouse"
>
<ApolloProvider client={client}>
<ThemeProvider theme={Theme}>
<Router>
<ReactNotification />
<Routes />
</Router>
</ThemeProvider>,
</ApolloProvider>
</Auth0Provider>,
document.getElementById('root')
);
serviceWorker.unregister();
获取我需要导入的令牌:
import { useAuth0 } from "@auth0/auth0-react";
添加这行:
const { getAccessTokenSilently } = useAuth0();
但这不能在 index.js 我认为
获取令牌:
const accessToken = await getAccessTokenSilently
这是我在文档和谷歌搜索中找到的,但我认为在我的情况下无法完成,大多数教程都展示了如何在个人资料页面中获取用户数据(包括令牌),但这不是我想要的.
我想将它传递给 index.js 中的 client
【问题讨论】:
标签: reactjs apollo auth0 apollo-client react-apollo