feat(auth): koppla login/register till Firebase → /v1/auth/session (AUTH-5)
This commit is contained in:
@@ -2,6 +2,7 @@ import { useState } from "react";
|
||||
import { Text, View } from "react-native";
|
||||
import { Link, Redirect, router } from "expo-router";
|
||||
import { api } from "@/lib/api";
|
||||
import { firebaseAuthProvider } from "@/lib/auth-provider/firebase";
|
||||
import { useAuth, type AuthUser } from "@/lib/auth";
|
||||
import { t } from "@/lib/i18n";
|
||||
import { Body, Button, Input, Screen, Spacer, Title } from "@/components/ui";
|
||||
@@ -27,9 +28,12 @@ export default function LoginScreen() {
|
||||
setBusy(true);
|
||||
setError(null);
|
||||
try {
|
||||
const result = await api<LoginResponse>("/v1/auth/login", {
|
||||
await firebaseAuthProvider.signInWithEmail(email.trim(), password);
|
||||
const idToken = await firebaseAuthProvider.getIdToken();
|
||||
if (!idToken) throw new Error(t("common.error"));
|
||||
const result = await api<LoginResponse>("/v1/auth/session", {
|
||||
method: "POST",
|
||||
body: { email, password },
|
||||
body: { idToken },
|
||||
});
|
||||
await setSession(
|
||||
{ accessToken: result.accessToken, refreshToken: result.refreshToken },
|
||||
|
||||
@@ -2,6 +2,7 @@ import { useState } from "react";
|
||||
import { Text, View } from "react-native";
|
||||
import { Link, router } from "expo-router";
|
||||
import { api } from "@/lib/api";
|
||||
import { firebaseAuthProvider } from "@/lib/auth-provider/firebase";
|
||||
import { persistLanguageTag, useAuth, type AuthUser } from "@/lib/auth";
|
||||
import { detectDeviceLanguageTag, t } from "@/lib/i18n";
|
||||
import { localeDefaultsForRegion } from "@app/shared-types";
|
||||
@@ -28,13 +29,15 @@ export default function RegisterScreen() {
|
||||
setBusy(true);
|
||||
setError(null);
|
||||
try {
|
||||
const result = await api<RegisterResponse>("/v1/auth/register", {
|
||||
await firebaseAuthProvider.signUpWithEmail(email.trim(), password);
|
||||
const idToken = await firebaseAuthProvider.getIdToken();
|
||||
if (!idToken) throw new Error(t("common.error"));
|
||||
const result = await api<RegisterResponse>("/v1/auth/session", {
|
||||
method: "POST",
|
||||
body: {
|
||||
idToken,
|
||||
displayName,
|
||||
email,
|
||||
password,
|
||||
// D-031: enhetens språk – backend skapar locale-preferenser före välkomstmejlet.
|
||||
// D-031: enhetens språk – backend skapar locale-preferenser.
|
||||
locale: detectDeviceLanguageTag() ?? "sv-SE",
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user