Я создаю свое первое приложение для iOS на основе Swift, и я использую Supabase для аутентификации.
Когда начинается приложение, я хочу молча обновить сеанс текущего пользователя. Функция выглядит так:
Я использую модель представления.@MainActor
func getCurrentUser() async {
isLoading = true
authError = nil
defer { isLoading = false }
do {
// I also tried this
// let currentUser = try await supabase.auth.user()
let refreshToken = try await SupabaseService.shared.client.auth
.session.refreshToken // I can see that I have a token
let supabaseUser = try await SupabaseService.shared.client.auth
.refreshSession(refreshToken: refreshToken).user
user = User(
id: supabaseUser.id,
email: supabaseUser.email ?? "",
createdAt: supabaseUser.createdAt,
emailConfirmedAt: supabaseUser.emailConfirmedAt,
lastSignInAt: supabaseUser.lastSignInAt
)
isAuthenticated = true
if user?.emailConfirmedAt == nil {
authError = .emailNotConfirmed
}
} catch {
authError = mapSupabaseError(error)
user = nil
isAuthenticated = false
}
}
< /code>
и вызовите эту функцию следующей: < /p>
.onAppear {
Task {
await vm.getCurrentUser()
}
}
< /code>
При каждом холодном запуске я получаю эту ошибку: < /p>
error domain = nsurlerrordomain Code = -1005 "Сетевое соединение было потеряно." < /p>
< /blockquote>
Но я могу увидеть, что мой запрос достиг пособия по стороне. Я попробовал? 16, iOS 18.4 и 18.5). < /P>
Удаление полученных данных, очистка папки сборки и перезагрузки симулятора. Я не знаю, что делать.
Это известная проблема с Supabase Swift Client, когда обновляется сеанс сразу после запуска? Может ли сам симулятор iOS сбросить соединение? Существуют ли дополнительные заголовки или настройки, которые я должен настроить на клиент Supabase?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... t-on-app-l
Supabase auth.refreshsession сбой с сетевым соединением было потеряно при запуске приложения ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение