Полагаю, что хороший сценарий будет, если вы не используете приставку, сохраняете ее на localStorage
и переносите ее в разные компоненты.
export default class Login extends Component {
state = {
redirect: false,
redirectHR:false,
email: "",
password: "",
isLogin: false,
loggedIn: false,
returnedEmail: "",
returnedFirstName:"",
returnedLastName:"",
returnedCompanyName:"",
returnedCompanyCode:" ",
LoginToken:" ",
}
axios.post('/api/auth/login/', data, {headers:headers, withCredentials:true}).then(
res => {
if(res.data != null){
console.log(res.data);
// store the token in the localstorage
window.localStorage.setItem("token", res.data.token);
this.setState({
loggedIn: true,
returnedEmail: res.data.email,
returnedFirstName: res.data.first_name,
returnedLastName: res.data.last_name,
returnedCompanyName: res.data.company_name,
returnedCompanyCode: res.data.company_code,
LoginToken: res.data.token,
})
console.log(this.state.LoginToken);
}else{
console.log("failed to log in");
}
}
).catch(error => {
console.error(error.response);
})
}
....
получаете токен в другом компоненте
const headers = {
'Authorization': `Token window.localStorage.getItem("token")`
}
export class AdditionalInfo extends Component {
state = {
locations:[],
}
componentDidMount() {
axios.get('/api/jobs/list-locations/',{headers:headers, withCredentials:true}).then(res=>{
console.log(res)
this.setState({locations:res.data})
})
}
(или вы должны создать HO C для pu sh токена для реквизита.)
export default withToken = (wrapperComponent) => {
let token = window.localStorage.getItem("token");
if(!token){
// push to login
this.props.history.push('/login');
}else{
<wrapperComponent token={token}>
}
}
и с помощью ho c вы можете получить прямой доступ к токену в реквизите вашего компонента.