1

In the main dart file I am trying to initialise the login page is username is not saved and initialise the dashboard page if username is saved through flutter secure storage

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_get_storage/services/Storage.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';

import './login_page.dart';
import './dashboard_page.dart';


void main() async {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
        debugShowCheckedModeBanner: false,
        title: 'Flutter Demo',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: HomePage());
  }
}


class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

String? finalName;

class _HomePageState extends State<HomePage> {
  final userdata = GetStorage();

  final SecureStorage secureStorage = SecureStorage();
 

  @override
  void initState() {
    // TODO: implement initState

    

    secureStorage.readSecureData('username').then((value) {
      finalName = value;
    });
    Future.delayed(Duration.zero, () {
      checkIfLogged(finalName);
    });

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
  

    return Scaffold(
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(8.0),
          child: SafeArea(
            child: Center(
              child: CircularProgressIndicator(),
      
            ),
          ),
        ),
      ),
    );
  }

  dynamic checkIfLogged(value) {
    if (finalName != null) {
      Get.offAll(() => DashBoard());
    } else {
      Get.offAll(LoginPage());
    }
  }
}

Storage .dart file... This is where the Class of flutter secure storage is placed

```
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

class SecureStorage {
  final _storage = FlutterSecureStorage();

  Future writeSecureData(String key, String value) async {
    var writeData = await _storage.write(key: key, value: value);
    return writeData;
  }

  Future readSecureData(String key) async {
    var readData = await _storage.read(key: key);
    return readData;
  }

  Future deleteSecureData(String key) async {
    var deleteData = await _storage.delete(key: key);
    return deleteData;
  }
}

// login_page file

import 'package:flutter/material.dart';
import 'package:flutter_get_storage/services/Storage.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:get_storage/get_storage.dart';
import 'package:get/get.dart';

import './dashboard_page.dart';

class LoginPage extends StatelessWidget {
  final username_controller = TextEditingController();
  final password_controller = TextEditingController();

  final userdata = GetStorage();

  final SecureStorage secureStorage = SecureStorage();
  // final storage =  FlutterSecureStorage();

  final ButtonStyle style =
      ElevatedButton.styleFrom(textStyle: const TextStyle(fontSize: 20));

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(" Home Page"),
      ),
      body: Center(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              "Login Form",
              style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold),
            ),
           
            Padding(
              padding: const EdgeInsets.all(15.0),
              child: TextField(
                controller: username_controller,
                decoration: InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'username',
                ),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(15.0),
              child: TextField(
                controller: password_controller,
                decoration: InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'Password',
                ),
              ),
            ),
            ElevatedButton(
              style: style,
              onPressed: () async {
                String username = username_controller.text;
                String password = password_controller.text;

                if (username != '' && password != '') {
                  print('Successfull');

                 
                  secureStorage.writeSecureData('username', username);
                

                  secureStorage.readSecureData('username');

                  

                  Get.offAll(() => DashBoard());
                } else {
                  Get.snackbar("Error", "Please Enter Username & Password",
                      snackPosition: SnackPosition.BOTTOM);
                }
              },
              child: Text("Log-In"),
            )
          ],
        ),
      ),
    );
  }
}

Dashboard_page file

import 'package:flutter/material.dart';
import 'package:flutter_get_storage/main.dart';
import 'package:flutter_get_storage/services/Storage.dart';
import 'package:get_storage/get_storage.dart';
import 'package:get/get.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';

import './login_page.dart';

class DashBoard extends StatelessWidget {
  final userdata = GetStorage();
  final SecureStorage secureStorage = SecureStorage();

  

  @override
  Widget build(BuildContext context) {
    String? finalName;

    

    secureStorage.readSecureData('username').then((value) {
      finalName = value;
    });

    String? abc = 'abc';

    return Scaffold(
      appBar: AppBar(
        title: Text(" Shared Preferences"),
      ),
      body: Center(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              "USER DATA",
              style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold),
            ),
            Text(
           
              //"name : ${secureStorage.readSecureData('username')}",
              "name : ${finalName}, ${abc}",

              
              style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
            ),
            ElevatedButton(
              onPressed: () async {
                userdata.write('isLogged', false);
                secureStorage.deleteSecureData('username');
                //await storage.delete(key: 'username');
                Get.offAll(() => LoginPage());
              },
              child: Text("LOGOUT"),
            )
          ],
        ),
      ),
    ); 
  }
}

I was using the flutter_secure_storage package for keeping my user Logged In, but I cannot keep user logged In and also I cannot keep the information of user as I want in my dashboard page.

0 Answers0