Какой лучший способ сохранить токены jwt в приложениях для флаттера? - PullRequest
3 голосов
/ 07 марта 2019

Не только где (sqlite ...), но и как (libs, лучшие конкретные практики)?

Ответы [ 2 ]

3 голосов
/ 01 мая 2019

Возможно, вы не хотите хранить конфиденциальные данные в общих настройках.Вместо этого вы можете захотеть посмотреть на плагин, как это: https://pub.dartlang.org/packages/flutter_secure_storage

import 'package:flutter_secure_storage/flutter_secure_storage.dart';

// Create storage
final storage = new FlutterSecureStorage();

// Write value 
await storage.write(key: 'jwt', value: token);
2 голосов
/ 07 марта 2019

Использование https://pub.dartlang.org/packages/shared_preferences лучше для вас, поскольку оно «обеспечивает постоянное хранилище простых данных».

Пример кода:

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

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      body: Center(
      child: RaisedButton(
        onPressed: _getAndSaveToken,
        child: Text('Get token'),
        ),
      ),
    ),
  ));
}

_getAndSaveToken() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  String token = await _getTokenFromHttp();
  await prefs.setInt('jwt', token);
}

Future<String> _getTokenFromHttp() async {
  // http code here
}
...