깨끗한 엠버 앱을 만들고 간단한 인증을 설치했으며 Facebook 용 맞춤 인증기를 구현했습니다.Ember 간단한 인증 세션 내용이 페이지 새로 고침 후 손실 됨
https://github.com/prule/ember-auth-spike
나는 성공적으로 (세션에서 FB과 풋에서 액세스 토큰을 받고 크롬 타다 확장을 통해 용기 세션을 검사하고있어 것을 알 수 있습니다 나 세션이 인증되고 액세스 토큰이 볼 수 보여줍니다).
하지만 브라우저에서 페이지를 다시로드하면 세션 상태가 손실됩니다. 이 예상되는 동작입니까? 내 사용자 정의 인증 기에서 잘못된 것이 있습니까? 인증 코드는 복사 및 붙여 넣기 (일부 console.logs 포함)입니다. https://github.com/simplabs/ember-simple-auth/blob/master/examples/7-multiple-external-providers.html
감사합니다. 도움을 주셔서 감사합니다.
import Ember from 'ember';
import Base from 'simple-auth/authenticators/base';
export default Base.extend({
restore: function (data) {
return new Ember.RSVP.Promise(function (resolve, reject) {
console.log('restore');
if (!Ember.isEmpty(properties.accessToken)) {
console.log('found access token '+properties.accessToken);
resolve(properties);
}
else {
console.log('no token found');
reject();
}
});
},
authenticate: function (options) {
return new Ember.RSVP.Promise(function (resolve, reject) {
console.log('1');
FB.getLoginStatus(function (fbResponse) {
console.log('2');
console.log(fbResponse);
if (fbResponse.status === 'connected') {
Ember.run(function() {
console.log(fbResponse.authResponse.accessToken);
resolve({accessToken: fbResponse.authResponse.accessToken});
});
}
else if (fbResponse.status === 'not_authorized') {
reject();
}
else {
FB.login(function (fbResponse) {
if (fbResponse.authResponse) {
Ember.run(function() {
console.log(fbResponse.authResponse.accessToken);
resolve({accessToken: fbResponse.authResponse.accessToken});
});
}
else {
reject();
}
});
}
});
});
},
invalidate: function (data) {
return new Ember.RSVP.Promise(function (resolve, reject) {
FB.logout(function (response) {
Ember.run(resolve);
});
});
}
});
오류가없는 이유는 모르겠지만 고칠 수 있습니다. 불행히도 원래 프로젝트에서 똑같은 실수를 범하지 않았기 때문에 거기에 다른 문제가있었습니다. 그 중 하나를 제거하고이 코드를 다시 복사하여 제거 할 수있었습니다. 이제 조금 더 쉬워졌습니다. 나는이 경험을했습니다. 어쨌든, 당신의 도움과 인내심에 감사드립니다. – prule