저는 페이스 북 쿠키를 서버 측에서 처리하는 우리의 웹 앱에서 Facebook 인증을 구현하려고합니다. 우리는 자바 스크립트 SDK를 사용하여 로그인을 수행하고 쿠키를 설정합니다.Facebook JS SDK가 쿠키를 설정하지 않습니다.
그러나 어떻게 든 Facebook SDK가 fbsr_APPID 쿠키 (또는 쿠키)를 설정하지 않는 것 같습니다. 우리는 페이스 북이 제공되는 로그인 위젯을 통해 로그인을 수행 할 수
window.fbCallbacks = []
# Create initialization function
window.fbAsyncInit = ->
fbConfig =
appId: '<APPID here>'
channelUrl: '/assets/channel.html'
status: true
cookie: true
xfbml: true
FB.init fbConfig
cb() for cb in window.fbCallbacks
# Set it up
((d)->
id = 'facebook-jssdk'
ref = d.getElementsByTagName('script')[0]
return if d.getElementById id
js = d.createElement 'script'
js.id = id
js.async = true
js.src = "//connect.facebook.net/en_US/all.js"
ref.parentNode.insertBefore js, ref
)(document)
: 이것은 커피 스크립트 코드
<div class="fb-login-button" data-show-faces="true" data-scope="publish_stream"/>
일부 추가 정보 :이 크롬 안정적이고 카나리아에서 테스트되었습니다
- IE9는 로컬 호스트와 127.0.0.1 모두에서 --enable-file-cookies가 설정되어 있거나 설정되어 있지 않은 상태입니다. 나는 이것이 브라우저 문제가 아니라는 것을 의미한다고 말할 수 있습니다.
- 나는 채널 파일을 열심히 보려고했지만 지금은 어디에서나 완벽하게 액세스 할 수 있습니다.
- JS에서 제 코드로 쿠키를 설정하는 것이 좋습니다.
- 내 로그인 위젯이 제대로 장식되어 있고 이미 내가 로그인 한 후에도 로그인했기 때문에 JS SDK가 제대로로드됩니다.
- 콘솔에 오류가보고되지 않습니다. 그것은 완전히 비어 있습니다.
- 커피 스크립트를 Facebook Developers의 초기화 코드 JavaScript 예제에서 복사 한 것으로 바꾸어도 작동하지 않습니다.
무슨 일입니까? Facebook에서 내 앱 쿠키를 설정하지 않는 이유는 무엇입니까?
는 참고로, 여기에 위의 커피 스크립트에 의해 생성 된 자바 스크립트입니다 :
이(function() {
window.fbCallbacks = [];
window.fbAsyncInit = function() {
var cb, fbConfig, _i, _len, _ref, _results;
fbConfig = {
appId: '<appid>',
channelUrl: '/assets/channel.html',
status: true,
cookie: true,
xfbml: true
};
FB.init(fbConfig);
_ref = window.fbCallbacks;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
_results.push(cb());
}
return _results;
};
(function(d) {
var id, js, ref;
id = 'facebook-jssdk';
ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
return ref.parentNode.insertBefore(js, ref);
})(document);
}).call(this);