Привет, Максим! Наконец-то ты вернулся! ❤ OAuth'у научился ещё с времен учёбы на skillbox блягодаря твоему уроку ;) Реализовал для авторизации с Unsplash сервисом. Было приятно посмотреть и вспомнить некоторые моменты (особенно насчёт PKCE и logout). Смотрю, обновил свою реализацию - добавил suspendCoroutine и Flow с каналами) 😎👍 Спасибо за все твои видео! Почаще выходи в эфир 😎
Шикарно, но добавлю, что CLIENT_ID и CLIENT_SECRET в реальном приложении должны храниться отдельно от репозитария в property файле и передаваться между разработчиками через защищённые мессенджеры и хранилища, например Keybase, а для CI/CD получаться из environment.
@@v.yundin Это позволяет исключить получение ключей, если кто-то получит доступ к исходникам в репозитарии. Один из уровней безопасности. Для того чтобы из APK не достали используют другие методы, конечно)
Очень крутое видео, огромное спасибо автору! Есть небольшой вопрос, как и просил автор) Исходные данные: coroutines, okHttpClient + Retorift, обновление токена происходит в Authenticator классе. Вопрос: Как гарантировать обновление токена только один раз, если в приложении есть параллельные запросы на бэк?
эх, не реализован метод unauthorizedHandler.onUnauthorized() - было бы интересно посмотреть, как с Дата-слоя на UI-слой корректно такие действия вызывать.
Привет, Максим! Наконец-то ты вернулся! ❤
OAuth'у научился ещё с времен учёбы на skillbox блягодаря твоему уроку ;) Реализовал для авторизации с Unsplash сервисом.
Было приятно посмотреть и вспомнить некоторые моменты (особенно насчёт PKCE и logout). Смотрю, обновил свою реализацию - добавил suspendCoroutine и Flow с каналами) 😎👍
Спасибо за все твои видео! Почаще выходи в эфир 😎
На мой взгляд, это лучший доклад по этой теме на ютюбе. Спасибо автору. Разобрался, наконец, как подключить Keycloak OAuth к мобильному приложению!!!
Очень интересный доклад, использую OAuth в своем приложении, из доклада узнал много нового по реализации!
Такая ценная и объемная информация понятным языком - это находка. Спасибо автору за качественный доклад!
оооо, Максим Мялкин! сколько лет, сколько зим) даже соскучился по тебе и твоим урокам. Жаль, что ты больше не ведешь курсы в Skillbox. крутой подход)
Спасибо за позитивный фидбек)
Максим - наш анкл Боб ;)
Отличная презентация! Спасибо за доклад
Вот прям ОЧЕНЬ полезно! Круто!
Доклад пушка 💯
Спасибо за контент!
Отличный доклад!
Good!!
Круто!
Понравилось подробное объяснение
Шикарно, но добавлю, что CLIENT_ID и CLIENT_SECRET в реальном приложении должны храниться отдельно от репозитария в property файле и передаваться между разработчиками через защищённые мессенджеры и хранилища, например Keybase, а для CI/CD получаться из environment.
А что это даёт? Они же всё равно в apk в открытом виде будут лежать
@@v.yundin Это позволяет исключить получение ключей, если кто-то получит доступ к исходникам в репозитарии. Один из уровней безопасности. Для того чтобы из APK не достали используют другие методы, конечно)
А где токен лучше хранить, который достаем при request exchange?
круто)
Спасибо!
А как тогда быть, если в google-cloud-platform нельзя задавать кастомные редирект схемы, а https перехватывается браузером?
Очень крутое видео, огромное спасибо автору! Есть небольшой вопрос, как и просил автор)
Исходные данные:
coroutines, okHttpClient + Retorift, обновление токена происходит в Authenticator классе.
Вопрос:
Как гарантировать обновление токена только один раз, если в приложении есть параллельные запросы на бэк?
Ну собственно в примере кода из описания есть такое обновление, если кому интересно. Спасибо автору еще раз)
Максим. Почему в скиллбокс нету этой темы😁😁😁😁😁
Есть - тема Retrofit )))
эх, не реализован метод unauthorizedHandler.onUnauthorized() - было бы интересно посмотреть, как с Дата-слоя на UI-слой корректно такие действия вызывать.