Flutter微框架Nylo(十):身份认证

在 Nylo 中,您可以使用内置助手来轻松进行身份验证。

让我们想象一下下面的场景。

  1. 用户使用电子邮件和密码进行注册。
  2. 注册后,为用户创建会话token。
  3. 我们现在希望将会话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
});

现在,当应用启动时,它将使用身份验证页面而不是默认路由链接。

相关推荐
problc31 分钟前
Flutter中文字体设置指南:打造个性化的应用体验
android·javascript·flutter
lqj_本人9 小时前
鸿蒙next选择 Flutter 开发跨平台应用的原因
flutter·华为·harmonyos
lqj_本人12 小时前
Flutter&鸿蒙next 状态管理框架对比分析
flutter·华为·harmonyos
起司锅仔16 小时前
Flutter启动流程(2)
flutter
hello world smile19 小时前
最全的Flutter中pubspec.yaml及其yaml 语法的使用说明
android·前端·javascript·flutter·dart·yaml·pubspec.yaml
lqj_本人20 小时前
Flutter 的 Widget 概述与常用 Widgets 与鸿蒙 Next 的对比
flutter·harmonyos
iFlyCai20 小时前
极简实现酷炫动效:Flutter隐式动画指南第二篇之一些酷炫的隐式动画效果
flutter
lqj_本人20 小时前
Flutter&鸿蒙next 中使用 MobX 进行状态管理
flutter·华为·harmonyos
lqj_本人20 小时前
Flutter&鸿蒙next 中的 setState 使用场景与最佳实践
flutter·华为·harmonyos
hello world smile21 小时前
Flutter常用命令整理
android·flutter·移动开发·android studio·安卓