Я новичок в OAuth2, и там проблема, с которой я боролся, и несмотря на то, что исследование все еще не может понять.
Трудность использования JS-клиента для OAuth2 заключается в том, что вы не можете хранить секрет клиента, потому что он будет широко доступен в браузере. То есть в этом вопросе SO наивысший рейтинг говорит:
"Я думаю, что параметры tokenSecret и consumerSekret должны быть секрет! Как они могут оставаться секретными при загрузке в браузер?!!!"
Поэтому, как рамки OAuth2 на стороне клиента, такие как hello.js или oauth.io преодолеть эту проблему? Я знаю, что они используют прокси-сервер на стороне сервера (который знает ID и секрет) для своих запросов, но клиентский JS-код все равно должен каким-то образом сообщить прокси-серверу, кто он. Итак, что мешает кому-либо принимать JS-код с моего сайта и разговаривать с прокси-сервером от моего имени?
Я также нашел Клиентскую библиотеку API Google API для JavaScript. AFAIK там клиентский код не передает секрет. Правильно ли я понимаю, что они справляются с этим, имея предопределенный адрес ответа OAuth? (так что токены всегда возвращаются через предопределенный HTTP-адрес). Так что, даже если кто-то пытается олицетворять мой сайт, используя мой идентификатор, токены все равно будут возвращены на мой сайт?
Возможно, я запутаю несколько разных тем здесь, любой свет на эту тему будет оценен.