在 Nylo 中,您可以使用内置助手来轻松进行身份验证。
让我们想象一下下面的场景。
- 用户使用电子邮件和密码进行注册。
- 注册后,为用户创建会话token。
- 我们现在希望将会话token存储在用户的设备上以供将来使用。
scss
TextEditingController _tfEmail = TextEditingController();
TextEditingController _tfPassword = TextEditingController();
_login() async {
// 1 - Example register via an API Service
User? user = await api<AuthApiService>((request) => request.register(email: _tfEmail.text, password: _tfPassword.text));
// 2 - Returns the users session token
print(user?.token);
// 3 - Save the user to Nylo
await Auth.set(user);
}
现在,用户模型将保存在设备上。
要找回经过身份验证的用户,请使用 Backpack.instance.auth()
。这将返回之前保存的模型。
1. 添加身份验证用户
当用户登录到应用程序时,您可以使用 Auth.set(user)
帮助程序添加他们。
scss
_login() async {
User user = User();
await Auth.set(user);
}
2. 检索身份验证用户
如果用户登录到您的应用程序,则可以通过调用 getAuthUser()
来检索该用户。此帮助程序方法将返回存储的模型。
ini
_getUser() async {
User? user = await Auth.user<User>();
// or
User? user = Backpack.instance.auth();
}
3. 删除身份验证用户
当用户注销应用程序时,您可以使用 Auth.remove()
帮助程序将其删除。
csharp
_logout() async {
await Auth.remove();
}
现在,用户已注销应用,下次访问应用时不会显示身份验证页面。
4. 身份验证页面
使用 Auth.set(user) 助手存储用户后,您就可以设置一个 "身份验证页面"。您就可以设置一个 "验证页面",这将作为用户打开应用时看到的初始页面。转到您的 routes/router.dart 文件并设置参数 authPage
。
scss
appRouter() => nyRoutes((router) {
router.route(HomePage.path, (context) => HomePage(title: "Hello World"));
router.route(ProfilePage.path, (context) => ProfilePage(), authPage: true); // auth page
});
现在,当应用启动时,它将使用身份验证页面而不是默认路由链接。