Flutter и Supabase - глубокая ссылка OAuth не работает

Я настроил OAuth с моим приложением Flutter и Supabase. Это работает в Интернете... Я вхожу в систему провайдера, и меня перенаправляют на мой веб-сайт с учетными данными. Однако в iOS это не работает. Я вхожу в систему провайдера, но меня по-прежнему перенаправляют на веб-сайт, а не в приложение. Я добавил CFBundleURLSchemes к Info.plist и связанным доменам, но это не сработало. Это функция, которую я использую, что и показывает пример Supabase:

Supabase.auth.signInWithOAuth(
  pkg.Provider.apple,
  redirectTo: kIsWeb ? null : '<Bundle url>://login-callback/',
);
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>*bundle id*</string>
          <string>domain.com</string>
        </array>
      </dict>
    </array>
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
145
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы добавили схему, которую использовали, в файл info.plist? который необходим для того, чтобы ОС знала, как открыть URL-адрес с этой схемой в этом приложении. А именно:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>YourSchemeHere</string>
        </array>
    </dict>
</array>

и это официальный документ об этом

Да, я добавил это, и у меня есть URL-адрес моего веб-сайта, а также URL-адрес пакета. Но, согласно документации Supabase, мне даже не нужно этого делать, это просто должно работать.

Globe 27.12.2022 08:20

@Globe Не могли бы вы сказать мне, откуда вы взяли «согласно документации Supabase, мне даже не нужно было этого делать»? Потому что это на самом деле требование. Причина, по которой deeplink не работает, вероятно, связана с ошибкой в ​​конфигурации. Что у вас есть в разделе YourSchemeHere?

dshukertjr 27.12.2022 09:02

Я добавил это к нижней части вопроса для вас. Что касается документации Supabase, здесь (supabase.com/docs/reference/dart/auth-signinwithoauth) есть функция, которая говорит, что все, что вам нужно для входа в систему с помощью OAuth, — это функция, которую я использую. В нем не упоминается необходимость добавления дополнительных вещей.

Globe 27.12.2022 20:49
Ответ принят как подходящий

Я нашел проблему. В отдельном руководстве по Supabase упоминается о необходимости добавить '<Bundle url>://login-callback/' в качестве redirect_url на самом сервере. При самостоятельном размещении это отображается как ADDITIONAL_REDIRECTURLS в .env.

Другие вопросы по теме

Похожие вопросы