Плохой запрос: /dj-rest-auth/google/ . Запрос не выполнен с кодом состояния 400
При использовании dj-rest-auth, google login, я продолжаю получать Request failed with status code 400 и не могу понять, что не так. Все остальные конечные точки API работают, кроме социального входа. Страница перенаправляет на страницу Google Signup Page, а затем URL также содержит "ключ", но по какой-то причине вход не происходит. Пожалуйста, помогите.
//Action.js
export const googleLogin = ( code ) => async dispatch => {
if ( !localStorage.getItem('access') ) {
const config = {
headers: {
"Content-Type": "application/json"
}
};
const body = JSON.stringify({ code })
try {
const res = await axios.post("http://localhost:8000/dj-rest-auth/google/", body, config)
dispatch ({
type: TYPE.LOGIN_SUCCESS,
payload: res.data
})
} catch (err) {
dispatch ({
type: TYPE.LOGIN_FAIL,
error: err.message
})
}
} else {
dispatch( verify() );
dispatch( getUser() );
}
}
//reducer.js
const AuthReducer = (state=initialState, action) => {
const { type, payload } = action;
switch (type) {
case TYPE.LOGIN_SUCCESS:
localStorage.setItem('access', payload.access);
return {
...state,
access: payload.access,
isAuthenticated: true,
user: payload.user,
message: "Login has successed"
}
case TYPE.LOGIN_FAIL:
localStorage.removeItem('access');
return {
...state,
access: null,
isAuthenticated: false,
user: null,
message: "Login has failed"
}
default:
return state;
}
}
//Header.js
const Layout = (props) => {
let location = useLocation();
useEffect (() => {
const values = queryString.parse(location.search);
const code = values.code;
if ( code ) {
props.googleLogin( code );
} else {
props.verify();
props.getUser();
}
// eslint-disable-next-line
},[location])
return (
<div>
< Header />
{props.message? <Alert message={props.message}/>:null}
{props.children}
</div>
)
}