我有一条路线,
/authenticated/page
,只有用户登录后才能查看。
go_router 的官方重定向示例展示了如何执行此类“登录门”,但它重定向到
/
。
重定向(例如登录)后如何恢复导航?即:
/
→ 点击链接/authenticated/page
→ 被登录页面屏蔽 → 登录成功 → 打开 /authenticated/page
我花了一段时间试图弄清楚这一点,这就是我想到的。我不喜欢这个解决方案,但它有效......
对于我想强制登录的路由,我检查用户是否已登录:
GoRoute(
path: "account",
name: "/account",
builder: (context, state) {
if (authRepository.currentUser == null) {
return const SignInScreen(redirectTo: "/account");
}
return const ProfileScreen();
},
)
请注意,当当前用户为
null
时,此路由将重定向到 SignInScreen
,并将 redirectTo
设置为“/account”。
然后在
SignInScreen()
中创建一个可选的 redirectTo
参数,如果设置该参数,将在成功登录后重定向到该路由。