Как внедрить Google Login в WkWebView, переключаясь на SFSafariViewController

У меня есть приложение для iOS App которое в основном запускает мобильный сайт с использованием WkWebView . На мобильном сайте пользователи могут войти в систему, используя учетную запись Google.

Из-за того, что Google не позволит WebViews использовать Google Sign больше, как я могу войти в систему для своих пользователей?

Я думаю о двух решениях:

  1. Перехватите URL-адрес google-входа (account.google.com/) и откройте SFSafariViewController а затем каким-то образом получите обратный вызов в моем WkWebView?

    1. Перехватите URL-адрес google и используйте Google Sign in SDK входа в Google Sign in SDK который будет SFsafariViewController в SFsafariViewController но предоставит мне только userToken, который мне нужно будет отправить на мой сайт и подтвердить подлинность пользователя на стороне сервера.

Есть ли простой способ аутентифицировать пользователя, не имея дело с токенами?

Я решил это.

В основном, когда WkWebkit запускает URL-адрес account.google.com я перехватываю его и запускаю собственную библиотеку Google для входа в систему, которая запускает SFSafariViewController (в iOS 9+, возвращается к WebView в предыдущих версиях). Когда пользователь завершит вход в систему, я получаю URL-адрес моего приложения, которое я обрабатываю в делегате приложения, и получаю информацию о пользователе.

В объекте пользователя появляется serverAuthcode, который мне нужно отправить на мой серверный сервер, чтобы он аутентифицировал пользователя google. (Я в основном воссоздаю URL-адрес обратного вызова oauth, который ожидает сервер)

Interesting Posts
Давайте будем гением компьютера.