#angular #cordova #ionic-framework #oauth-2.0 #google-authentication
#angular #кордова #ионный фреймворк #oauth-2.0 #google-аутентификация
Вопрос:
Я пытаюсь использовать Google OAuth для своего приложения. Поскольку у меня есть ограничения на использование плагина Google Plus или любого другого подобного плагина, я попробовал ручной процесс, как показано ниже, на iOS (приложение Cordova, ionic).
Я использовал плагин для браузера в приложении, при нажатии кнопки открывается URL-адрес Google OAuth, используя in-appbrowser
target как _system в браузере Safari.
https://accounts.google.com/o/oauth2/v2/auth?
scope=email profileamp;
response_type=codeamp;
state=security_token=138r5719ru3e1&url=https://oauth2.example.com/tokenamp;
redirect_uri=**reverse_client_id**:/oauth2redirectamp;
client_id=***
Появляется экран входа в Google, после ввода необходимых данных (имя пользователя, пароль) он перенаправляется в мое приложение
Проблема в том, что когда он перенаправляет обратно, он не вызывает страницу (угловой маршрут), приложение остается идеальным. [путь перенаправления: /oauth2]
Как обрабатывать перенаправление?
Ответ №1:
Я нашел пару решений
- https://github.com/cmgustavo/Custom-URL-scheme#readme
- https://ionicframework.com/docs/native/deeplinks
У первого плагина есть вызываемый метод handleOpenURL
, с помощью которого можно получить код OAuth.
(window as any).handleOpenURL = (url: string) => {
setTimeout(function() {
console.log("handle open url called", url)
}, 0);
}
URL-адрес, указанный выше, имеет a code
, который можно использовать для получения access token
.
Ответ №2:
Чтобы реализовать вход в систему с помощью Google в Angular, вы должны выполнить указанные шаги:
- Создайте приложение Google в платформе Google Cloud Console и сгенерируйте идентификатор клиента.
- Создайте новое приложение angular.
- Реализовать вход в систему с помощью Google, используя протокол Google OAuth 2.0.
Вы можете прочитать мою статью, написанную на Codingvila Angular 14 Login с помощью Google с использованием OAuth 2.0, где я объяснил все шаг за шагом на примере.
Вы также можете загрузить примерный пример для своей практики.