Насколько безопасно разрешать клиентам доступ к идентификаторам подписки Stripe для упрощения операций с базой данных? - PullRequest
0 голосов
/ 25 мая 2020

Я создаю централизованную конечную точку Stripe для управления данными, относящимися к полосе пользователя, такими как подписки, способы оплаты и т. Д. c. Использование клиентской части Elements и настраиваемой конечной точки mongodb.

При детализации конечной точки моя схема для содержания подписок находится внутри массива.

...
 subscriptions:[{
        subscriptionID:{
            type: String
        },
        subscriptionUUID:{
            type: String // unused
        }
        platform:{
            type: String
        },
        status:{
            type: Boolean
        },
        details:{
            type: String
        },
        debutInvoice:{
            type: String
        }

    }],
...

Остается вопрос, как мне разрешить пользователям управлять своими подписками? Должен ли я предоставить им доступ к их идентификатору подписки? Это безопасно?

Изменить: поддержка Stripe подтвердила, что раскрытие идентификаторов, таких как si_xxxxx и sub_xxxxx, безопасно, поскольку они привязаны к учетной записи клиента, которая затем, в свою очередь, привязана к вашему закрытому ключу!

1 Ответ

1 голос
/ 25 мая 2020

Краткий ответ: Зависит от .

Пока вы никоим образом не раскрываете свои ключи Stripe, с вами все будет в порядке.

Кроме того, обычно все, что вам нужно, если иметь уникальный идентификатор для каждого клиента и иметь возможность связать этот идентификатор пользователя с идентификаторами и ресурсами любых других сторонних сервисов.

Я не Не знаю, что такое c ваш бизнес-лог и как выглядит ваша схема базы данных, но я бы сказал, что для многих обычных отношений пользователь-подписка все, что вам нужно, - это отслеживать все, начиная с любого идентификатора пользователя.

Вот некоторые обходные пути:

  • Зашифровать идентификаторы полосы секретными ключами,

или - как я упоминаю во втором абзаце -:

  • , чтобы служба промежуточного программного обеспечения выполняла соотношение 1: 1 - выборка соответствующего ресурса подписки Stripe.

Теперь, после некоторых разговоров и правок, похоже, что это связано со схемой. Я бы сказал, что если у вас есть коллекция User со свойством массива subscriptions. Тогда это упростило бы ситуацию.

Итак:

const UserSchema = {
  name: String,
  email: String,
  stripeCustomerId: String,
  stripeSubscriptions: [String]
}

Тогда вы можете запросить массив для элемента в MongoDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...