[flutter] shared_preferences를 사용하여 로그인 정보를 앱에서 유효성 검사하는 방법은?

앱에서 로그인 정보를 저장하고 유효성을 검사하는 방법 중 하나는 shared_preferences 패키지를 사용하는 것입니다. 이를 통해 사용자의 로그인 상태를 유지하고 관리할 수 있습니다. 아래에서는 Flutter 앱에서 shared_preferences를 사용하여 로그인 정보를 유효성 검사하는 방법을 살펴보겠습니다.

1. shared_preferences 패키지 추가

가장 먼저 pubspec.yaml 파일에 shared_preferences 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6

위와 같이 dependencies 섹션에 shared_preferences 패키지를 추가하고 pub get 명령어를 실행하여 패키지를 설치합니다.

2. 로그인 정보 저장 및 유효성 검사

다음으로, 사용자의 로그인 정보를 shared_preferences를 사용하여 저장하고 유효성을 검사합니다. 예를 들어, 사용자가 로그인을 완료하면 로그인 정보를 저장하고, 앱을 다시 실행할 때 해당 정보를 사용하여 사용자의 로그인 상태를 확인할 수 있습니다.

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class LoginScreen extends StatelessWidget {

  Future<void> _saveLoginInfo() async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setBool('isLoggedIn', true);
  }

  Future<bool> _isUserLoggedIn() async {
    final prefs = await SharedPreferences.getInstance();
    return prefs.getBool('isLoggedIn') ?? false;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            await _saveLoginInfo();
          },
          child: Text('로그인'),
        ),
      ),
    );
  }
}

위의 예제에서는 _saveLoginInfo 메서드를 사용하여 사용자의 로그인 상태를 저장하고, _isUserLoggedIn 메서드를 사용하여 사용자의 로그인 상태를 확인합니다.

3. 로그아웃 로직 추가

로그아웃 기능을 구현할 때는 shared_preferences에서 해당 사용자의 로그인 정보를 삭제하면 됩니다.

Future<void> _logout() async {
  final prefs = await SharedPreferences.getInstance();
  await prefs.remove('isLoggedIn');
}

위의 예제에서는 _logout 메서드를 사용하여 사용자의 로그인 정보를 삭제하는 방법을 보여줍니다.

Flutter에서 shared_preferences 패키지를 사용하여 로그인 정보를 유효성 검사하는 방법을 살펴 보았습니다. 해당 기능을 구현하면 사용자의 로그인 상태를 앱 내에서 효과적으로 관리할 수 있습니다.

참고: shared_preferences 패키지 공식 문서