По сути, я создаю онлайн-приложение для продукта, когда пользователь выбирает какой-либо продукт и нажимает кнопку «Оформить заказ», он проверяет, является ли пользователь логином или нет. Здесь я сделал то же самое, я выбрал продукт, зашел на страницу корзины и нажал кнопку «Оформить заказ» (здесь я не вошел), поэтому он перешел на страницу входа и сохранил переменные, а затем я go перешел на страницу корзины и нажал на кнопка оформления заказа снова переходит на страницу входа. Я уже сохранил переменные на странице входа, но почему это не проверка.
Loginpage.dart
Future<UserRegister> getLogin(UserLogin userLogin) async{
final String apiUrl="http://cashback.us-east-2.elasticbeanstalk.com/user/login";
var userLoginJson = userLogin.toJson();
final response=await http.post(apiUrl,body: json.encode(userLoginJson),headers: {"content-type" : "application/json",
"Accept": "application/json",}
);
print(response);
if(response.statusCode >= 200 && response.statusCode < 300){
final responseString=response.body;
print(responseString);
var result = userRegisterFromJson(responseString);
print(result.user.userId);
print(result.user.name);
print(result.user.token);
print(result.user.mobile);
print(result.user.isDriver);
print(result.driver.driverId);
prefs.setBool('login', true);
prefs.setString('userid', result.user.userId.toString());
prefs.setString('name', result.user.name);
prefs.setString('mobile', result.user.mobile); //Here i am storing the values
prefs.setString('isDriver', result.user.isDriver.toString());
prefs.setString('driverId', result.driver.driverId.toString());
prefs.setString('token', result.user.token);
return result;
}else{
final responseString=response.body;
var result = json.decode(responseString);
print(result);
return null;
}
}
RaisedButton(
onPressed(){
getLogin(login);
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => MainPage()));
}
)
Cartpage.dart
SharedPreferences logindata;
bool newuser;
PlatformButton(
onPressed: (){
check_if_already_login();
},
child: Text('Checkout',style: TextStyle(color: Colors.white),),
androidFlat: (_) =>
MaterialFlatButtonData(color: Colors.cyan),
ios: (_) =>
CupertinoButtonData(color: Colors.cyan)
),
Future<void> check_if_already_login() async {
logindata = await SharedPreferences.getInstance();
newuser = (logindata.getBool('login') ?? true);
Navigator.pushReplacement(
context, new MaterialPageRoute(builder: (context) => Login()));
if (newuser == false) {
print(false);
}
}