Вы должны изучить использование OpenID Connect вместе с протоколом OAuth.Он позволяет вам аутентифицировать пользователя в вашем клиентском приложении (приложение Angular6 + Spring) для проверки данных пользователя.
Когда вы отправляете access token
для доступа к определенному ресурсу, вам следует избегать его отправки в видепараметр запроса.Обычно рекомендуется отправлять его под заголовком авторизации запроса как bearer token
.Однако, если вы хотите, чтобы он был более безопасным, вы можете закодировать токен перед отправкой, чтобы было трудно декодировать его и украсть любую ценную информацию.
Кроме того, когда вы отправляете конфиденциальную информацию, онаЛучше отправлять их в виде JSON Web Token (JWT)
.Вы можете использовать стороннюю библиотеку для создания JWT, чтобы включить информацию, которая должна быть отправлена на сервер.Вы можете подписать JWT своей собственной подписью, которая может быть подтверждена позже.Для получения подробной информации о jwts см. https://tools.ietf.org/html/rfc7519.
Вы должны использовать утверждения в своем access token
, чтобы предоставить пользователю доступ к защищаемому ресурсу.Поскольку большинство токенов отправляются в виде jwts, вы можете их декодировать и проверить необходимые утверждения, такие как области, аудитория (клиентское приложение), тема (пользователь) и т. Д.
Самое главное, выследует проверить подпись токена, отправленного из Facebook, чтобы убедиться в его подлинности.Для этого вам необходимо получить public key
подробности из jwks endpoint
в Facebook и проверить подпись с помощью сторонней библиотеки (auth0, nimbusds и т. Д.).Цифровая подпись Facebook будет уникальной, и этот процесс проверки является лучшим способом обеспечения безопасности.Кроме того, вы можете проверить, соответствуют ли определенные утверждения в токене ожидаемым значениям, чтобы проверить токен.Это также можно сделать с помощью библиотек, таких как упомянутые выше.Вот auth0 репо , чтобы вы могли получить общее представление.