# Expo Router auth guards that survive expired sessions and deep links

Most Expo apps get sign-in working on the first day and get auth guards wrong for the next six months. The login screen appears, the token lands in secure storage, and everything looks fine until a user reopens the app from a push notification, lands on a protected screen with an expired session, and sees a flash of someone else's layout — or worse, a blank screen with no way back.

Expo Router gives you the primitives to handle all of this: protected routes, layout-level redirects, and splash screen control that waits for async session restore. The official authentication guide covers the happy path well.

---

*This is an excerpt. Read the full post at [otf-kit.dev/blog/expo-router-auth-guards-production](https://otf-kit.dev/blog/expo-router-auth-guards-production) — full-stack kits your AI coding agent can actually ship to production. [Browse the kits →](https://otf-kit.dev)*
