mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
ready to test
Testing Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -9,6 +9,7 @@ export const decodeToken = (token) => JSON.parse(atob(token.split('.')[1]))
|
||||
export function AuthProvider({ children }) {
|
||||
const [accessToken, _setAccessToken] = useState(null)
|
||||
const [user, setUser] = useState(null)
|
||||
const [sessionId, setSessionId] = useState(null)
|
||||
const [loading, setLoading] = useState(true)
|
||||
const [sessionRestored, setSessionRestored] = useState(false)
|
||||
const [authError, setAuthError] = useState(null)
|
||||
@@ -28,6 +29,7 @@ export function AuthProvider({ children }) {
|
||||
const { data } = await api.post('/auth/login', { email, password })
|
||||
setAccessToken(data.data.accessToken)
|
||||
setUser(data.data.user)
|
||||
setSessionId(data.data.session_id ?? null)
|
||||
return { success: true, user: data.data.user }
|
||||
} catch (err) {
|
||||
const message = err.response?.data?.message || 'Login failed. Please try again.'
|
||||
@@ -56,6 +58,7 @@ export function AuthProvider({ children }) {
|
||||
const { data } = await api.post('/auth/verify-otp', { email, otp })
|
||||
setAccessToken(data.data.accessToken)
|
||||
setUser(data.data.user)
|
||||
setSessionId(data.data.session_id ?? null)
|
||||
return { success: true, user: data.data.user }
|
||||
} catch (err) {
|
||||
const message = err.response?.data?.message || 'OTP verification failed.'
|
||||
@@ -78,14 +81,15 @@ export function AuthProvider({ children }) {
|
||||
// ── Logout ─────────────────────────────────────────────────────────────────
|
||||
const logout = useCallback(async () => {
|
||||
try {
|
||||
await api.post('/auth/logout')
|
||||
await api.post('/auth/logout', { session_id: sessionId })
|
||||
} catch (_) {
|
||||
// ignore
|
||||
} finally {
|
||||
setAccessToken(null)
|
||||
setUser(null)
|
||||
setSessionId(null)
|
||||
}
|
||||
}, [])
|
||||
}, [sessionId])
|
||||
|
||||
// ── Restore session ────────────────────────────────────────────────────────
|
||||
const restoreSession = useCallback(async () => {
|
||||
@@ -97,9 +101,11 @@ export function AuthProvider({ children }) {
|
||||
const { data } = await api.post('/auth/refresh')
|
||||
setAccessToken(data.data.accessToken)
|
||||
setUser(data.data.user)
|
||||
setSessionId(data.data.session_id ?? null)
|
||||
} catch (_) {
|
||||
setAccessToken(null)
|
||||
setUser(null)
|
||||
setSessionId(null)
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
@@ -112,6 +118,7 @@ export function AuthProvider({ children }) {
|
||||
setAccessToken,
|
||||
user,
|
||||
setUser,
|
||||
sessionId,
|
||||
login,
|
||||
register,
|
||||
verifyOTP,
|
||||
|
||||
Reference in New Issue
Block a user