31 lines
838 B
Dart
31 lines
838 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:news_getx/data/services/user.dart';
|
|
import 'package:news_getx/routes/app_pages.dart';
|
|
|
|
/// 检查是否登录
|
|
class RouteAuthMiddleware extends GetMiddleware {
|
|
// priority 数字小优先级高
|
|
@override
|
|
int? priority = 0;
|
|
|
|
RouteAuthMiddleware({this.priority});
|
|
|
|
@override
|
|
RouteSettings? redirect(String? route) {
|
|
// 如果已登录或者访问的页面是无需登录的则不处理
|
|
if (UserService.to.isLogin ||
|
|
route == AppRoutes.Signin ||
|
|
route == AppRoutes.Signup ||
|
|
route == AppRoutes.Initial) {
|
|
return null;
|
|
}
|
|
|
|
Future.delayed(
|
|
Duration(seconds: 1),
|
|
() => Get.snackbar("提示", "登录过期,请重新登录"),
|
|
);
|
|
return RouteSettings(name: AppRoutes.Signin);
|
|
}
|
|
}
|