1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Flutter] I want to save token of signIn form in shared preference also retrieve token...

Discussão em 'Mobile' iniciado por Stack, Outubro 10, 2024 às 02:22.

  1. Stack

    Stack Membro Participativo

    For keep user logged in flutter app, I want to save token from API response in SharedPreferences. I am trying to save it, but that doesn't work.

    Basically the API response is successfully received and its signin token but how to save in sharedPreference for user loggedIn after reopening the app i work on it but not saved pretty well

    Here is my splash screen method whereGoTo initialized in initState hook:

    void whereGoTo() async {
    var sharedPref = await SharedPreferences.getInstance();
    var isSignedIn = sharedPref.getString('token');

    Timer(Duration(seconds: 2), () {
    if (isSignedIn != null && isSignedIn.isEmpty) {
    print(isSignedIn);
    Navigator.pushReplacement(
    context, MaterialPageRoute(builder: (context) => HomePage()));
    } else {
    Navigator.pushReplacement(
    context,
    MaterialPageRoute(
    builder: (context) => SafeArea(child: Login_Screen())));
    }
    });
    }


    Here my signIn method integrated API and setString method to saved token after response of api:

    String? myToken;

    loginApi(email, password) async {
    print(email);
    print(password);
    final response = await http
    .post(Uri.parse('https://quotes.limpidsol.com/api/login'), body: {
    'email': email,
    'password': password,
    });
    if (response.statusCode == 200) {
    print('account loggedIn successfully');
    var data = ExtructData.fromJson(jsonDecode(response.body));
    print(data.token);
    setState(() {
    myToken = data.token;
    });

    var pref = await SharedPreferences.getInstance();
    pref.setString('token', myToken!);
    Navigator.pushReplacement(
    context, MaterialPageRoute(builder: (context) => HomePage()));

    String successMessage =
    'Logged in successfully. Status code: ${response.statusCode}';
    ScaffoldMessenger.of(context).showSnackBar(
    SnackBar(
    content: Text(successMessage),
    ),
    );
    } else {
    String errorMessage = 'Login failed. Status code: ${response.statusCode}';
    ScaffoldMessenger.of(context).showSnackBar(
    SnackBar(
    content: Text(errorMessage),
    ),
    );
    }
    }

    Continue reading...

Compartilhe esta Página