我正在使用django-rest-auth,它是" Django all-auth"的API扩展。我正在建立一个可以使用Facebook令牌注册/登录的移动应用程序(网址:http://localhost:8000/rest-auth/facebook/)。
使用' expo'
获取Facebook令牌.nested_fields
= f.label :name
= f.text_field :name
= fields_for :gene do |g|
= g.label :name
= g.text_field :name
= link_to_remove_association 'remove SV', f
在Http POST请求中包含令牌
export const doFacebookLogin = () => async dispatch => {
let { type, token } = await Facebook.logInWithReadPermissionsAsync('194632xxxxxx', {
permissions: ['public_profile']
});
if (type === 'cancel') {
return dispatch({ type: FACEBOOK_LOGIN_CANCEL })
}
doSocialAuthLogin(dispatch, token);
};
我收到400错误。所以我在localhost浏览器和Postman上打印了测试的令牌。两者都返回
const doSocialAuthLogin = async (dispatch, token) => {
console.log(token);
axios.post(`${ROOT_URL}/rest-auth/facebook/`, {
access_token: token
}).then(response => {
AsyncStorage.setItem('stylee_token', response.data.token);
dispatch({ type: AUTH_LOGIN_SUCCESS, payload: response.data.token });
})
.catch(response => {
if(response.status === 400) {
console.log('Not authorized. ');
} else if (response.status === 403){
console.log('You are not suposed to see this message. Contact Administrator');
}
dispatch({ type: SOCIAL_FACEBOOK_LOGIN_FAIL });
});
}
为什么我得到400不正确的值错误?
settings.py
SITE_ID = 7#我在shell中搜索了相应的SITE_ID。
管理员
Social_Application。 =>
{
"non_field_errors": [
"Incorrect value"
]
}
我认为我为' access_token'提供了错误的价值。我们不能从expo.Facebook.logInWithReadPermissionsAsync?中添加令牌。由于FB令牌随时间而变化。
答案 0 :(得分:0)
在社交应用(http://localhost:8000/admin/socialaccount/socialapp/1/change/)的管理页面中,您需要为Facebook提供者指定“秘密密钥”。