[flutter] shared_preferences를 활용하여 사용자의 로그인 정보를 수정하는 방법은?

앱에서 사용자의 로그인 정보를 로컬에 안전하게 저장하고 수정해야 할 때가 있습니다. flutter에서는 shared_preferences 라이브러리를 사용하여 간단하게 이 작업을 수행할 수 있습니다.

shared_preferences 라이브러리 추가하기

먼저, shared_preferences 라이브러리를 pubspec.yaml 파일에 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6

그런 다음, 터미널에서 flutter pub get 명령을 실행하여 패키지를 다운로드 받고 프로젝트를 업데이트하세요.

사용자 로그인 정보 저장하기

이제 shared_preferences를 사용하여 사용자의 로그인 정보를 저장하고 수정하는 방법에 대해 알아봅시다.

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

class LoginScreen extends StatelessWidget {
  final _usernameController = TextEditingController();
  final _passwordController = TextEditingController();

  Future<void> _saveLoginInfo() async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString('username', _usernameController.text);
    await prefs.setString('password', _passwordController.text);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Login'),
      ),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            TextField(
              controller: _usernameController,
              decoration: InputDecoration(labelText: 'Username'),
            ),
            TextField(
              controller: _passwordController,
              decoration: InputDecoration(labelText: 'Password'),
              obscureText: true,
            ),
            ElevatedButton(
              onPressed: _saveLoginInfo,
              child: Text('Save'),
            ),
          ],
        ),
      ),
    );
  }
}

위의 예제 코드에서는 사용자가 로그인 정보를 입력하고 ‘Save’ 버튼을 누르면 해당 정보가 shared_preferences에 저장됩니다.

사용자 로그인 정보 수정하기

사용자가 로그인 정보를 수정하려면 동일한 방법으로 새로운 정보를 저장하면 됩니다. 예를 들어, 사용자가 기존의 로그인 정보를 불러와서 수정 후 다시 저장할 수 있습니다.

Future<void> _updateLoginInfo() async {
  final prefs = await SharedPreferences.getInstance();
  await prefs.setString('username', '새로운 유저명');
  await prefs.setString('password', '새로운 비밀번호');
}

위의 _updateLoginInfo 함수를 사용하여 기존 로그인 정보를 수정할 수 있습니다.

이제 필요에 따라 shared_preferences를 사용하여 사용자의 로그인 정보를 손쉽게 저장하고 수정할 수 있습니다.

간단하게 이야기하자면, shared_preferences를 사용하여 사용자의 로그인 정보를 로컬에 저장하거나 수정하는 방법을 살펴보았습니다. 이를 통해 앱이 오프라인 상황에서도 사용자 정보를 안전하게 관리할 수 있습니다.