flutter_secure_storageでセキュアに情報を保存する

May 29, 2019

公式プラグインのshared_preferencesを使えば、簡単に設定などを保存できますが、これは平文なのでセキュアではありません。
例えばWeb APIにアクセスするためアクセストークンは、iOSであればKeyChainを使うなどして保存する必要があります。

flutter_secure_storageを使うとFlutterからこのKeyChainなどを使うことができます。

https://github.com/mogol/flutter_secure_storage

導入

pubspec.yamlに書いてpackages getします。

1
2
dependencies:
  flutter_secure_storage:

Androidの設定

android/app/build.gradleminSdkVersion18にします。

バックアップでエラーが出ないようにAndroidManifest.xmlで無効化します。

1
2
android:allowBackup="false"
android:fullBackupContent="false"

値の読み書き

後はコードを書くだけです。

1
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
1
2
3
4
5
6
final storage = new FlutterSecureStorage();

await storage.write(key: 'token', value: 'ABCDE');
String token = await storage.read(key: 'token');

print(token);

これで無事動きました。

1
flutter: ABCDE