Я создаю API и отдельное внешнее приложение, которое будет потреблять указанный API. В моем конкретном случае я использую Laravel Passport для моего API и некоторых VueJS для моего внешнего приложения.Регистрация пользователя для API/SPA
Для того, чтобы пользователь, чтобы создать учетную запись, пользователь должен POST
к маршруту (/oauth/token
) на API, который требует client_secret
быть принят (https://laravel.com/docs/5.3/passport#password-grant-tokens).
Единственные варианты я вижу, являются:
- После
client_secret
послал в качестве заголовка из моего внешнего интерфейса приложения. Однако, помещая этот токен в открытую, не кажется умным. - Не требуется
client_secret
. Это не кажется намного лучше, чем вариант 1. - Имейте динамическую страницу в моем внешнем приложении, которое может безопасно хранить
client_secret
, а затем отправить его в API. Хотя это, очевидно, наиболее безопасно, похоже, частично преуменьшает цель полностью статического интерфейса (SPA).
Какова наилучшая практика для такого подхода? Я искал, как это рассматривается в целом с API и SPA, но я не нашел ничего, что указывало бы мне в правильном направлении.
Я начинаю думать, что для регистрации, CSRF или другая защита на основе токенов не имеет значения. Поскольку регистрация пользователей, скорее всего, общедоступна, любая защита на стороне клиента, которая проверена сервером, не будет очень эффективной. – tptcat