Как интегрировать сервер идентификации в полнофункциональное приложение с пользователями приложения?
Процесс регистрации / входа в систему для моего приложения в настоящее время существует следующим образом:
- Если пользователь приложения регистрируется, его учетные данные сохраняются, и новый входящий в систему пользователь возвращается клиенту с токеном JWT, созданным поддерживаемым приложением.
- Если пользователь приложения входит в систему, его имя пользователя и данные приложения извлекаются из базы данных и возвращаются вместе с токеном JWT, сгенерированным серверной частью приложения.
Я пытаюсь интегрировать сервер идентификации (Keycloak), но я не совсем уверен, как справиться с этим в тандеме с текущим потоком.
Мой текущий мыслительный процесс для этого потенциального потока заключается в том, что пользователь нажимает «Войти с помощью SSO» на странице клиента, он входит в систему через страницу входа на сервер идентификации, а затем перенаправляется обратно на страницу клиента с токеном JWT. Затем на сервер отправляется запрос, содержащий имя пользователя и токен, предоставленные сервером идентификации. ЕСЛИ имя пользователя этого пользователя существует в базе данных, вернуть пользователя, вошедшего в систему, с тем же токеном и данными приложения. ЕСЛИ имя пользователя этого пользователя НЕ существует в базе данных, создайте пользователя с этим именем пользователя, ЗАТЕМ верните имя пользователя для входа, как описано выше.
Это разумное рассуждение и это типичный образец, который будет использоваться в этом сценарии?