我正在使用带有ember-simple-auth(1.7.0)的ember进行身份验证。这是应用程序适配器功能:
authorize(xhr) {
let { email, token } = this.get('session.data.authenticated');
let authData = `Token token="${token}", email="${email}"`;
xhr.setRequestHeader('Authorization', authData);
}
当我使用ember-fetch(5.1.3)时,没有用于身份验证的标头:
fetch('/appname/v1/user/count'+count_params).then((response)=>{return response.json()})
同一模型使用标题中的auth信息成功执行了emberDS查询。 如何将信息添加到提取头中?
编辑:
这是我创建的用于包装提取的服务:
import Service from '@ember/service';
import fetch from 'fetch';
import { inject as service} from "@ember/service"
export default Service.extend({
fetch(url){
let { email, token } = this.get('session.data.authenticated')
let authData = `Token token="${token}", email="${email}"`
return fetch(url,{headers: {'Authorization': authData}}).then(
(response)=>{return response.json()}
)
},
session: service()
});
答案 0 :(得分:2)
您需要创建访存包装服务并使用它,而不是“原始”访存和重做。