С моей точки зрения, у вас есть принципиальная проблема с дизайном вашего API.Кажется, что вы хотите предоставить интерфейсу некоторые глобальные учетные данные, чтобы SPA, в свою очередь, мог аутентифицироваться по API.Этот подход странен: либо конечная точка является общедоступной, и поэтому не требует аутентификации, либо она защищена, и каждый пользователь должен проходить аутентификацию должным образом.
Если вы просто хотите защитить API от спам-ботов и т. Д., Вы можете отправить nonce в приложение и проверить его в следующем запросе.Это ни в коем случае не является надежной защитой, но гарантирует, что каждому POST
требуется GET
и некоторый анализ на стороне спаммера.
Если вы хотите, чтобы ваши пользователи проходили аутентификацию по нескольким запросам, вы должны хорошо использоватьустановленные методы для обеспечения сеанса или функции запомнить меня.Это могут быть, например, файлы cookie сеанса (работают, но уязвимы для атак CSRF), JWT (с OAuth или без него) или что-то подобное.
Но что бы вы ни делали: не пытайтесь запутать общие учетные данные, которые вы передаете!