[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
를 사용하여 사용자의 로그인 정보를 로컬에 저장하거나 수정하는 방법을 살펴보았습니다. 이를 통해 앱이 오프라인 상황에서도 사용자 정보를 안전하게 관리할 수 있습니다.