Closed AkanshDivker closed 1 year ago
Hey @AkanshDivker, this is an issue with the sqflite plugin being used (https://pub.dev/packages/sqflite). Sqflite only supports iOS, Android, and MacOS.
For Windows/Linux/DartVM support, you'd need to convert things over to use Sqflite Common FFI (https://pub.dev/packages/sqflite_common_ffi)
Since I was targeting this at iOS/Android and developing on a Mac, I didn't notice this shortcoming.
To be honest, sqlite is a temporary solution for the needs of the authenticator. It is being used to store the keypairs that are generated for each request, and this isn't as secure as things should be. The real fix for this is to get a plugin working that allows the app to use the device's keychain/keystore as the datastore for the keypairs. I just haven't had time.
Can you try to update your local version to use the Common FFI plugin listed above and let me know if that works for your needs?
Thanks for the information! I did some more digging and found out that for Linux and Windows some extra initialization code is necessary in the main method. I've created a pull request which includes a fix, hope it's all fine and good!
But yes I do agree that storing credentials in the device keychain/keystore is a more optimal solution. Hopefully that can come around soon.
Have merged PR #2. Thank you so much!
I'm trying to get started with this package but I'm unable to get the example running. After cloning the repository, I ran the tests and they all passed. However, when I try and run the example project I get a
MissingPluginException
when trying to register. I have tried runningflutter clean
before running the example but the issue still persists. I hope I'm not missing any steps or instructions, I believe all compatibility requirements are being met.Platform: Windows 11 Error: MissingPluginException (MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite))
Would appreciate any help, thanks!
Console Log