Я пытаюсь понять OAuth 2.0(SERVER SIDE FLOW). Рассмотрим простой пример API для контактов Google.
Согласно спецификациям, я зарегистрировал свое приложение в Google и получил ID клиента и секрет клиента, а также упомянул URL обратного вызова.
Получение токена доступа требует от меня сделать
Перенаправление пользователя на определенный URL с требуемыми строками запроса и заголовками, как указано в документе OAuth на сайте Google (https://accounts.google. com/o/oauth2/auth bla bla stuff)
После того, как пользователь вводит свои учетные данные, он отправляется обратно на URL обратного вызова, как упомянуто в моем APP, который я уже зарегистрировал в google. здесь параметр querystring &code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp6 bla bla также добавляется для обратного вызова URL. Таким образом, теперь у меня есть код авторизации
Теперь я посылаю запрос на https://accounts.google.com/o/oauth2/token с кодом авторизации, который я получил на предыдущем шаге, чтобы получить токен доступа и обновить токен.
Как только я получил этот "токен доступа", я могу получить доступ (скажем, контактный API и получить пользовательские контакты)
До этого момента все в порядке. Я также понимаю, что срок службы токенов доступа ограничен, и мы можем получить новый токен доступа, используя "refresh token".
A.Как разработчик, несу ли я ответственность за хранение и проверку действительности "токена доступа"?
B. Если мой сайт является публичным сайтом с аккаунтом "Login with Google/FB/twitter", откуда мне знать, что это тот же самый пользователь, который вернулся на сайт через 2 дня, и мне не нужно, чтобы он запрашивал логин, вместо этого пользователь должен автоматически входить на сайт ? cauz i dont want him to go through the authorization process as they have already gave permission to my app.
E.G.: Я вошел на сайт TechCrunch, используя свой логин на FB, и могу комментировать статьи. Теперь, даже через 1 неделю, если я посещу TechCrunch, мне не придется входить в систему снова. откуда они знают, что мы с ним уже авторизованы?