Пользователи, посещающие мой веб-сайт, могут войти в свою локальную учетную запись или учетную запись Facebook. Мой сайт проверяет статус входа в Facebook и получает от Facebook следующую информацию:
accessToken
- содержит токен доступа для пользователя, использующего приложение.
expiresIn
- указывает время UNIX, когда токен истекает и должен быть обновлен.
signedRequest
- подписанный параметр, который содержит информацию о человеке, использующем приложение.
userID
- идентификатор лица, использующего приложение.
Мой сервер имеет базу данных, которая содержит некоторую личную информацию для этих пользователей, которая не предоставляется Facebook. (Facebook не имеет к этому никакого отношения).
Сразу после входа в систему клиент должен получить эту информацию с моего сервера.
onFacebookLogin(response) {
const { accessToken, expiresIn, signedRequest, userID } = response;
const userKey = ???? ;
infoService.getInfo(userKey).then((info) => this.info = info);
}
Очевидно, мне нужен ключ в моей базе данных для выполнения этой выборки:
- Этот ключ должен идентифицировать пользователя уникальным образом.
- Это должен быть постоянный , а не какой-то временный токен, который меняется каждые x дней.
- Это должен быть безопасный , в том смысле, что он не может быть просто именем пользователя. (Это должно быть что-то, о чем другие не могут догадаться.)
Соответствует ли accessToken
, userID
или signedRequest
этим условиям? Или я должен использовать другой подход (например, аутентификация на стороне сервера)?
(PS: это не в официальной документации.)