Ember-simple-auth和ember-fetch在获取查询中没有授权

问题描述 投票:0回答:1

我正在使用带有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查询。如何将信息添加到fetch标头?

编辑:

这是我创建的用于包装fetch的服务:

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()
});
authentication ember.js ember-simple-auth
1个回答
2
投票

您需要创建获取包装器服务并使用它,而不是“原始”获取和boilerplating。

标题的原始用法 - https://github.com/github/fetch#post-json

© www.soinside.com 2019 - 2024. All rights reserved.