Успешно внедрих Google Login в моето уеб приложение, използвайки OAuth 2.0 за уеб приложения от страна на клиента. За повечето нужди просто трябва потребителят да влезе в моето приложение веднъж и аз предавам id_token обратно на моя сървър, за да го удостоверя, и връщам JWT токен на предния край при успех. Потребителят не трябва да влиза всеки път, когато посещава страницата, като съхранява този JWT токен в браузъра.
Сега искам да вградя някои допълнителни възможности в моето приложение, които изискват да действам от името на потребителя, така че трябва да постепенно поискайте допълнителни обхвати. Мисля, че се справям с този аспект.
От страна на клиента получавам съгласие да използвам API на Google от името на потребител и след това използвам токена на носителя, който получавам, за да направя заявка към този API, след което получавам обратно обект от Google.
Сега искам да предам този обект на моя сървър (моя бек-енд), за да съхраня някаква информация в моята база данни, свързана с потребителя, който е влязъл в моята система. Как да удостоверя на моя сървър, че обектът, който получих обратно от Google чрез прокси през браузъра, всъщност принадлежи на потребителя, който го предава на моя сървър.
Какво може да попречи на някой да използва cURL със своя валиден JWT токен към моя сървър и да предаде някакъв произволно конструиран обект на Google, създаден от тях. Не виждам нищо в обекта за отговор на Google, че мога да проверя автентичността му на моя сървър (както мога с id_token, който получавам от тяхното успешно влизане, както е описано тук). Може би има поле „под“ (което според мен е понятието за идентичност на Google) върху обекта, което поне ми позволява да знам, че принадлежи на потребителя на Google, ако мога да се доверя на автентичността на обекта на първо място.
Може ли някой да ме изясни и да ми даде разумно интуитивен ментален модел, за да организирам мислите си, и да ми каже дали съм далеч от основата с притесненията си тук или подхождам към това от напълно грешна гледна точка?