У меня есть два веб-приложения, написанные на .netcore, App 1
обслуживает контент html и App 2
- это API, который обслуживает запросы Javascript, оба находятся в одном решении, но у каждого свой порт конечно. Мой сценарий - браузер возвращает веб-сайт из App 1
, который включает в себя форму регистрации и javascript доступ к функциям регистрации в API по адресу App 2
.
Чтобы предотвратить доступ API к любому другому веб-сайт Я включил CORS
и добавил домен App 1
в качестве единственного домена, которому разрешен доступ к API App 2
, и он прекрасно работал, но любой рабочий стол может имитировать эти же заголовки запроса и получить доступ к API, и я протестировал с почтальоном и к API был получен доступ.
Поэтому я добавил заголовок Authorization, чтобы все функции API требовались для авторизации доступа к токену JWT bearer
.
Проблема заключается в том, как предотвратить приложения для настольных компьютеров. или другие небраузерные приложения в общем доступе к нему. из-за следующего:
1 - если я добавлю токен доступа в ответ от App 1
, чтобы javascript мог использовать его для доступа к App 2
любое другое приложение может легко получить его и скопировать, вставить его в свое приложение и получить доступ к API.
2 - Если я не закодирую токен в ответ App 1
и вместо этого javascript доступ к маршруту, который генерирует токен, тогда любое приложение может сделать то же самое, потому что они могут имитировать одинаковые заголовки запроса браузера. и тогда CORS будут бесполезны.
так что мне делать?