0
私はFacebookログインAPIをdjangoプロジェクトに適用しようとしています。 Facebookのユーザー名とデフォルトのパスワード(djangoがパスなしでユーザーを作成することができない限り)を使用し、ajax経由で認証する予定です。Django + Ajax + Facebook API 403 FORBIDDEN
FB.api('/me', function(response) {
alert(response.name); // it's fine, it's there
ajaxPost('/authfb/', {'username': response.name}, function(){ });
});
私は何をログに取得することです:
Failed to load resource: the server responded with a status of 403 (FORBIDDEN)
、アラートメッセージで:
POST /authfb/ 403 FORBIDDEN
undefined
私はデコレータでジャンゴ - AJAXを使用していますが、それは他のすべての中で私の作品コードの一部。
views.py:セキュリティCSRF同様の質問で
@ajax
def authfb(request):
if request.method == "POST":
username = request.POST.get('username')
password = '112358'
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
username = auth.get_user(request).username
print ('logged in succesfully')
return redirect("/user/%s/" % username)
else:
print("The username and password were incorrect.")
error_message_login_page = 'you do not exist'
return render(request, 'blog/facebook.html', {'error_message_login_page':error_message_login_page})
else:
print("whatever")
は、多くの場合、問題として指摘されています。だから私は、これは正しいかもしれないコードを、JS試してみましたが、それでも助けにはならなかった。
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
$.ajaxSetup({
headers: { "X-CSRFToken": getCookie("csrftoken") }
});
はEDIT:
def fblogin(request):
if request.user.is_authenticated():
username = auth.get_user(request).username
return redirect("/user/%s/" % username)
print(username)
else:
return render(request, 'blog/facebook.html', {})`
の体内
を追加します。あなたのコードは残念なことに助けにはなりません –
コード – itzMEonTV
を更新しました。ログに同じエラーが表示されます –