Как области токенов доступа shopify связаны с разрешениями пользователей?

Я создаю Shopify приложение в Nodejs. И я не могу найти никаких ресурсов о том, как пользователи с разными разрешениями будут взаимодействовать с моим приложением. Например, если моему приложению предоставлены read_products и write_products области, но у пользователя есть только read_products разрешения. Будет ли для него доступно приложение, если да, как мне получить сведения о пользователях и, что более важно, есть ли способ протестировать сценарий?


person Babken    schedule 17.06.2020    source источник


Ответы (1)


Shopify объяснил это подробно в разделе «Аутентификация» документации. Существует два режима аутентифицированного доступа: онлайн и офлайн.

Что вам нужно, так это онлайн-доступ. Из Shopify Документы

Токены с режимом онлайн-доступа связаны с отдельным пользователем в магазине, где срок жизни токена доступа совпадает с продолжительностью веб-сеанса пользователя. Этот тип режима доступа предназначен для использования, когда пользователь взаимодействует с вашим приложением через Интернет или когда приложение должно соблюдать уровень разрешений отдельного пользователя.

Несколько заметных различий по сравнению с доступом в автономном режиме (по умолчанию):

  • Этот режим доступа должен быть явно запрошен на этапе авторизации.
  • Запрос API, сделанный с использованием токена доступа в онлайн-режиме, гарантированно учитывает индивидуальные разрешения пользователя. Shopify возвращает код состояния 403 Forbidden, когда токен доступа действителен, но у пользователя нет доступа.
  • Приложение может проверять область и связанную_пользовательскую_скопию, чтобы определить, не хватает ли пользователю определенных разрешений.
person Bilal Akbar    schedule 01.07.2020
comment
Спасибо за ответ, и вы совершенно правы, но я не могу получить токен онлайн-доступа. Я использую @shopify/koa-shopify-auth и устанавливаю accessMode на «онлайн», как описано в их docs, но все равно получите токен автономного доступа, который не содержит никакой информации о пользователе. - person Babken; 01.07.2020
comment
Как узнать, что это токен автономного доступа? Вы не получите информацию о пользователе. Вы можете запросить AccessScope, и он вернет связанные разрешения. - person Bilal Akbar; 01.07.2020
comment
Это описано в здесь. Если запрашивается режим онлайн-доступа, то сервер отвечает токеном доступа и дополнительными данными. - person Babken; 01.07.2020
comment
Я сам не использовал токен онлайн-доступа. Просто убедитесь, что вы отправляете access_mode = для каждого пользователя, а не онлайн или что-то еще. - person Bilal Akbar; 01.07.2020
comment
Я проверил запросы с помощью fiddler, и он отправляет access_mode = per-user в строке запроса, но я все еще не получаю поле connected_user в сеансе (( - person Babken; 01.07.2020
comment
У меня есть)) дело в том, что все работает нормально, но @shopify/koa-shopify-auth я отладил через него и он получает данные, но никогда не помещает их в сеанс - person Babken; 01.07.2020