В моем API есть конечная точка / users, которая в данный момент показывает (например, адрес) детали всех зарегистрированных пользователей.Это должно быть доступно для приложения (Ember) (например, для просмотра адреса доставки пользователя), но по понятным причинам я не могу позволить кому-либо иметь возможность просматривать данные (будь то через доступный для просмотра API или в виде простого JSON, еслимы ограничиваем представление только использованием JSONRenderer).Я не думаю, что смогу использовать аутентификацию и разрешения, так как приложению необходимо в первый раз войти в систему из внешнего интерфейса (я использую аутентификацию на основе токенов).Например, если я использую аутентификацию в представлении пользователя в Django, я не могу войти из Ember.
Я что-то упустил?
ОБНОВЛЕНИЕ
Привет, я хотел вернуться к этому.
Для аутентификации на стороне Ember я использую Ember Simple Auth и аутентификацию на основе токенов в Django.Все работает нормально - я могу войти в приложение Ember и получить доступ к токену.
Мне нужно иметь доступ к пользователю;для этого я воспользовался примером кода здесь https://github.com/simplabs/ember-simple-auth/blob/master/guides/managing-current-user.md
Я проверил аутентификацию на основе токенов в Postman, используя токен для моего вошедшего в систему пользователя - и могу получить доступ к конечной точке / users.(Это возвращает всех пользователей - я хочу только для пользователя, для которого у меня есть токен, который нужно вернуть, но это на потом!).
Вопрос в том, как мне передать заголовок (токен) в любых запросах Ember, например,
this.store.findAll('user') .... etc
Это явно не происходит в настоящее время, и я не уверен, как это исправить.это.
ОБНОВЛЕНИЕ
Исправлено.Оказывается, функция авторизации в моем адаптере приложения не устанавливала заголовки, поэтому изменили код для явной установки заголовков:
authorize(xhr) {
let { access_token } = this.get('session.data.authenticated');
if (isPresent(access_token)) {
xhr.setRequestHeader('Authorization', `Token ${access_token}`);
}
},
headers: computed('session.data.authenticated.token', function () {
const headers = {};
if (this.session.isAuthenticated) {
headers['Authorization'] = `Token ${this.session.data.authenticated.token}`
}
return headers;
})