#django #react-native
Вопрос:
Итак, у меня есть этот собственный код react, который отправляет токен в строковом формате, да, я проверил, что var token = getAccessToken()
это строка, и я получил консоль.зарегистрируйте его, чтобы убедиться, что это также токен JWT. Но на стороне Джанго, когда я проверяю request.headers.get('Authorization', None)
его выходы: 'Bearer [object Object]'
что происходит?
Реагировать на Собственный Код
import {Auth} from 'aws-amplify';
export async function getAccessToken() {
try {
const currentUser = await Auth.currentAuthenticatedUser();
console.log(currentUser);
Auth
.currentSession()
.then(res => {
let accessToken = res.getAccessToken();
// let jwt = accessToken.getJwtToken();
// You can print them to see the full objects
// console.log(`myAccessToken: ${JSON.stringify(accessToken)}`);
// console.log(`myJwt: ${JSON.stringify(jwt)}`);
console.log(accessToken.jwtToken)
return accessToken.jwtToken
});
} catch (error) {
console.log('error signing up:', error);
}
}
const getPosts = () => {
var token = getAccessToken();
const config = {
headers: { Authorization: `Bearer ` token }
};
axios
.get(`${url}/posts`, config)
.then(response => {
console.log(response)
setData(response.data);
})
.catch(error => {
console.log(JSON.stringify(error));
});
}
Я тоже пытался
const config = {
headers: { Authorization: `Bearer ${token}` }
};
Я тоже пытался
function getPosts() {
var token = getAccessToken().then(token => {
const config = {
headers: {
Authorization: `Bearer ${token}`
}
};
console.log(token)
axios
.get(`${url}/posts`, config)
.then(response => {
console.log(response)
setData(response.data);
})
.catch(error => {
console.log(JSON.stringify(error));
});
}).catch(error => {
console.log(JSON.stringify(error));
});;
};
и console.log(token)
выводит «неопределенный»
Ответ №1:
Обновление getAccessToken
для возврата результата Auth .currentSession()
И
Сделайте getPosts
функцию async
и ждите getAccessToken()
. ИЛИ используйте then
блок для выполнения обещания
getAccessToken().then(token=>{ // Call the api },err=>{ // Handle the error }
В противном случае вы получаете обещание, которое еще не решено.
Комментарии:
1. Я обновил свой пост, теперь я получаю «неопределенный»
2. Обновленный. Вы также отсутствуете
return
поAuth .currentSession()