ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Flutterでキーを隠蔽化する

f:id:mbaasdevrel:20200110154553p:plain

mBaaSへアクセスする際にはアプリケーションキーとクライアントキー、二つのキーを使います。これらは漏洩するとデータストアやファイルストアを操作できてしまいます(ACLをきちんと設定しておけば、個人のデータについては問題ありません)。

そこでキーはアプリ内にハードコーディングせず、隠蔽化しておくのがお勧めです。今回はFlutterでキーを隠蔽化する方法を紹介します。

利用するライブラリ

利用するライブラリは flutter_dotenv です。pubspec.yamlに次のように記述します。

dependencies:
  flutter:
    sdk: flutter
  flutter_dotenv: ^2.0.1 # 追記

さらにアセットを追加します。これもpubspec.yamlへの記述です。

flutter:
  assets:  # 追加
    - .env # 追加

そして flutter pub get を実行します。

環境設定ファイルの作成

プロジェクトのルートディレクトリに .env というファイルを追加します。このファイル名は pubspec.yaml へ記述したものと同じです。このファイルは .gitignore でバージョン管理外のファイルとしておきます。

内容はシンプルなものです。 環境変数名=値 として記述するだけです。

APPLICATION_KEY=1f3...fb2
CLIENT_KEY=cdc...398

コーディング

では利用についてです。まずライブラリを読み込みます。

import 'package:flutter_dotenv/flutter_dotenv.dart';

次に main 関数を次のように書き換えます。

void main() async {
  await DotEnv().load('.env'); // 追加
  runApp(MyApp());
}

後は DotEnv().env で環境変数を取り出せます。下記はncmb | Dart Packageを初期化する例です。

NCMB ncmb = NCMB(DotEnv().env['APPLICATION_KEY'], DotEnv().env['CLIENT_KEY']);

まとめ

Flutterでプロジェクトを作る際にはflutter_dotenvを使ってキーの隠蔽化を行ってください。他のWeb APIを利用する際も同様です。誤った漏洩などを防いだり、開発環境と本番環境でキーを差し替える際にも使えるでしょう。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。