ember simple auth和Tori firebase TypeError:将循环结构转换为JSON
我开始让torri和emberfire为登录页面工作,但当我尝试将其与ember simple auth一起使用时,我得到了一个错误:ember simple auth和Tori firebase TypeError:将循环结构转换为JSON,firebase,ember.js,ember-simple-auth,emberfire,Firebase,Ember.js,Ember Simple Auth,Emberfire,我开始让torri和emberfire为登录页面工作,但当我尝试将其与ember simple auth一起使用时,我得到了一个错误: TypeError: Converting circular structure to JSON at JSON.stringify (<anonymous>) at Class.persist (local-storage.js:45) at Class.persist (adaptive.js:163) at Cl
TypeError: Converting circular structure to JSON
at JSON.stringify (<anonymous>)
at Class.persist (local-storage.js:45)
at Class.persist (adaptive.js:163)
at Class._callStoreAsync (internal-session.js:132)
at Class._updateStore (internal-session.js:207)
at Class._setup (internal-session.js:156)
at internal-session.js:61
at tryCatch (ember.debug.js:50180)
at invokeCallback (ember.debug.js:50195)
at publish (ember.debug.js:50163)
由Emberfire发送回的
data.authenticated
有效负载太复杂,具有循环引用。Ember Simple Auth将此有效负载存储到本地存储,以防止在刷新或打开其他选项卡上的应用程序时出现登录提示
现在看来对我有效的方法(我没有做太多测试)是扩展会话存储。YMMV
// app/session-stores/application.js
import AdaptiveStore from 'ember-simple-auth/session-stores/adaptive';
export default AdaptiveStore.extend({
persist(data) {
const a = data.authenticated;
const subset = {
authenticator: a.authenticator,
email: a.email,
provider: a.provider,
refreshToken: a.refreshToken,
uid: a.uid
}
return this._super({ authenticated: subset });
}
});
由Emberfire发送回的
data.authenticated
有效负载太复杂,具有循环引用。Ember Simple Auth将此有效负载存储到本地存储,以防止在刷新或打开其他选项卡上的应用程序时出现登录提示
现在看来对我有效的方法(我没有做太多测试)是扩展会话存储。YMMV
// app/session-stores/application.js
import AdaptiveStore from 'ember-simple-auth/session-stores/adaptive';
export default AdaptiveStore.extend({
persist(data) {
const a = data.authenticated;
const subset = {
authenticator: a.authenticator,
email: a.email,
provider: a.provider,
refreshToken: a.refreshToken,
uid: a.uid
}
return this._super({ authenticated: subset });
}
});
你知道,Firebase有自己的认证系统,已经使用了Tori。我不知道您的用例是什么,但我发现ember simple auth和Firebase是多余的。是的,我在第一次提交时firebase身份验证工作正常,但我想对我的模型使用ember simple auth DataAdapterMixin,对路由使用AuthenticatedRouteMixin。如果我不能修复它,我想我必须自己处理这个问题,没有混音,可能还需要编写更多的样板代码。你知道,Firebase有自己的认证系统,已经使用了Tori。我不知道您的用例是什么,但我发现ember simple auth和Firebase是多余的。是的,我在第一次提交时firebase身份验证工作正常,但我想对我的模型使用ember simple auth DataAdapterMixin,对路由使用AuthenticatedRouteMixin。如果我不能修复它,我想我必须自己处理它,而不使用mixin,并且可能需要编写更多的样板代码。