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