У меня есть приложение React с функцией входа в Facebook. Чтобы войти, мне нужно нажать конечную точку «http://localhost: 5000 / api / auth / facebook » с запросом GET. Это почему-то работает, когда я использую простую ссылку:
<a href="http://localhost:5000/api/auth/facebook">Login</a>
Сначала он вызывает oAuth-вызов Facebook, а затем вызывает конечную точку обратного вызова для получения токена.
То же самое не ' t работать с Ax ios.
Это Составная часть React: со ссылкой и функцией поддержки.
return (
<div>
<div>Dashboard</div>
<a
href="http://localhost:5000/api/auth/facebook"
//onClick={this.LoginWithFacebook}
>
Login with Facebook Href
</a>
<button onClick={this.props.LoginWithFacebook}>
Login with faceebook Func
</button>
</div>
);
Функция входа в систему :
export const LoginWithFacebook = () => async dispatch => {
try {
const result = await axios.get("api/auth/facebook");
dispatch({
type: LOGIN_USER,
payload: result.data
});
} catch (err) {
dispatch({
type: GET_ERRORS,
payload: err
});
}
};
С помощью этой функции она просто достигает маршрута oAuth, но не достигает конечной точки обратного вызова.
[UPD] Реферер устанавливается на http://localhost: 3000 / при вызове конечной точки из функции, а статус равен pending
. Я понятия не имею, почему, так как я использовал прокси в пакете. json, и другие функции работают хорошо.
[UPD2] Сетевые скриншоты
Со ссылкой (работает):
С функцией (не работает):
fetch("https://www.facebook.com/v3.2/dialog/oauth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Fapi%2Fauth%2Ffacebook%2Fcallback&scope=public_profile%2Cemail&client_id=XXXXXXXXX", {"credentials":"omit","referrer":"http://localhost:3000/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"});
Примечание , я редактировал client_id
Что здесь может быть не так?