У меня есть одно требование: разработать Spring Boot Rest API для входа в систему с использованием учетных данных Facebook и создать токен JWT для этих учетных данных и проверить каждый запрос.
Спасибо.
Привет, Нишит, я понял твою точку зрения. Но мое требование заключается в том, что для использования необходимо войти в систему с учетными данными Facebook и подтвердить дальнейший запрос на использование.
Например. Если я вошел в систему с учетными данными facebook в приложении xyz. затем я пытаюсь получить доступ к некоторой конфиденциальной информации на этот раз, чтобы подтвердить использование, разрешено ли использование или нет. Это то, что мое требование. Не могли бы вы мне помочь? Спасибо.
Когда пользователь входит в систему, используя учетные данные Facebook, пользователь будет аутентифицирован Facebook и выдаст токен, который можно использовать для авторизации. Я хочу сказать, что как только вы аутентифицируете пользователя на Facebook, вы получаете учетные данные. Вместо того, чтобы оборачивать его в JWT, сохраните его где-нибудь с идентификатором и оберните этот идентификатор в JWT. При каждом запросе вы будете получать токен JWT, и при авторизации вы можете получить идентификатор от JWT и получить его из постоянства или сохранить и авторизовать пользователя.
ОК, не могли бы вы поделиться со мной фрагментом кода/ссылкой для получения учетных данных пользователя после аутентификации, выполненной facebook.
Конечно вещь. Скоро я опубликую пример здесь.




Когда пользователь входит в систему, используя учетные данные Facebook, пользователь будет аутентифицирован Facebook и выдаст токен, который можно использовать для авторизации. Я хочу сказать, что как только вы аутентифицируете пользователя на Facebook, вы получаете учетные данные. Вместо того, чтобы оборачивать его в JWT, сохраните его где-нибудь с идентификатором и оберните этот идентификатор в JWT. При каждом запросе вы будете получать токен JWT, и при авторизации вы можете получить идентификатор от JWT и получить его из постоянства или сохранить и авторизовать пользователя.
Скажем, у вас есть токены facebook после входа в систему, тогда вам нужно где-то хранить их, используя какой-то идентификатор.
String fbTokenId = storeFBToken(fbToken);. Используя этот токен, вы можете сгенерировать токен JWT, например:
Algorithm algorithm = Algorithm.HMAC256(key);
String token = JWT.create().withIssuer(author)
.withClaim("fbTokenId", fbTokenId)
.withSubject("user")
.sign(algorithm);
Когда вы авторизуете запрос, у вас будет токен JWT. Теперь вам нужно проверить токен и прочитать fbTokenId, чтобы проверить его:
Algorithm algorithm = Algorithm.HMAC256(key);
JWTVerifier verifier = JWT.require(algorithm).withIssuer(author)
.build();
DecodedJWT jwt = verifier.verify(token);
String fbTokenId = jwt.getClaim("fbTokenId").as(String.class);
String fbToken = getFBTokenFromStore(fbTokenId);
Прежде чем перейти к этому, убедитесь, что вы понимаете концепции аутентификации и авторизации без сохранения состояния, особенно с токенами.
Найдите пример приложения для аутентификации здесь
Не могли бы вы поделиться справочной ссылкой, где я могу найти полный код
Какую версию весенней загрузки вы используете?
Посмотрите на ссылку, которую я добавил в пост.
Надеюсь, вы уже знаете о токенах JWT. Документация доступна для него, если вы не знакомы с ним. Я бы посоветовал вам не включать учетные данные facebook в JWT. Вместо этого вы должны сгенерировать случайный токен, который будет храниться в каком-либо хранилище, например, в постоянстве или, возможно, в кеше. Каждый раз при авторизации каждого запроса вы можете получить учетные данные facebook из кеша или постоянства и проверить токен. Дайте мне знать в комментариях, если вам нужна дополнительная помощь или я что-то пропустил.