-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC]: Amplify Flutter #5
Comments
Glad to hear that Amplify support is coming. Can I please request that this supports custom authentication flows? The current Amplify documentation pages for Android and iOS suggest initiating auth with username and dummy password and then changing the Cognito We have two applications which use the same user pool but have different sign in methods - one is custom and one is SRP_A. I am unable to use Amplify because I'm forced to do this hacky override in the Cognito trigger so we've resorted to using the Cognito SDK (non-amplify) directly. I believe custom flow may already be implemented in the JavaScript library because the password parameter is optional on the signIn function: https://aws-amplify.github.io/amplify-js/api/classes/authclass.html#signin but this is not the case for Android or iOS so I'm not sure if this is in scope for this project or not. I can raise this as an issue in the Android and iOS repos too if necessary. |
@andyfurniss4 Thanks for your feedback - we will definetely investigate this feature request! |
Are there any plans to actually implement the client libraries in native dart code? Would be nice not to rely on platform messages to just bridge everything to the android/iOS libraries, this would make it work on all platforms (ie. also on desktop platforms macos, windows, linux). It gets really great when you can use the same code for mobile and desktop ;-) |
In future can we expect Amazon SNS wrapper as part this package ? This will give us the ecosystem of various AWS features in single package. |
At the moment there is no federate sign in methods. Did I missed something or is actually still to be implemented? |
Honestly, we are not that bothered with auth as it is something easy to do without AWS. What we want to have is DataStore sync like Google Firestore. |
I'm looking forward to the feature Datastore.. |
@dedecube OAuth authentication is definitely on the roadmap! |
DataStore and API would be great to have |
DataStore and API (Rest and GraphQL) asap please. I am in love with flutter and want to use AWS as my backend for the project I am designing. I don't want to give in and use firebase. Any idea what the timeline will look like. Even preview will work! |
Agree. Can't wait to switch from firebase to amplify. |
DataStore and API (Rest and GraphQL) are definitely a big need. Is there a time table for when we can see these added? |
We need AppSync! |
As you can see, we're all pretty desperate for DataStore. If we could do anything to help I would gladly open pull requests but is there a list of things TODO ? 🥴 |
Hi all, we are currently working on the design for the datastore and will put it here or in another RFC to gather feedback. Please stay tuned. |
Edit (2021-02-16): Flutter SDK now supports DataStore so no need for the following hack.
|
Is there a timeline for supporting Flutter Web with AWS? I can get it working great on the iOS simulator but it can't configure amplify when running on web. Would be great to have the web app running too! |
hate to ask a question like this, but I am wondering about the timeline for "production-grade" authentication. Currently, I am working on a big project with about a year-long timeline. Our stack is built primarily with flutter and aws services and we have tested "hello world" auth via amplify and it works great. However, because these features are labeled as "previews" and explicitly recommended not to be used in production, I was wondering when there would be reasonable certainty in the viability of flutter auth with amplify. Thank you! |
@simonmahns I hear if you email your concerns to jeff@amazon.com enough times he forwards it to the right person to resolve 😅 |
Is there a weekly or bi-weekly progress report so we can know what to expect? |
@Amplifiyer thanks for the update on DataStore. If there's any update, would love to hear it. Also, more than happy to help alpha test anything :) |
@jamesdixon, we had been designing the datastore category for flutter and starting the implementation now. Stay Tuned!. I'll be putting up an RFC soon on this repo for visibility. |
+1 desperate for DataStore. |
Hi if nobody created this feature request, I will create a feature request on the push notification support describe according to @jobypthomas. I am working on a project using amplify and required push notification. Looking forward to see how amplify can enable this feature. |
@Amplifiyer any timeline on support for GraphQL APIs? |
It has been there since 0.0.1-dev.6 I think? |
Did not see that thanks |
@rlee1990 Graphql query and mutations are currently supported in the latest versions. Subscribe API will be available in our next versions. |
@Amplifiyer thanks for updating us on the subscriptions API, will this be a Dart implementation or calling the iOS and Android libraries? If so then I think we can use this for Desktop I would think. |
@joekendal, this will be a wrapper over iOS and Android libraries. |
@Amplifiyer |
@BaranMichal25, we recently released 0.0.2-dev.1 version which has this feature (Hosted UI or Social SignIn). More details here https://docs.amplify.aws/lib/auth/signin_web_ui/q/platform/flutter |
@Amplifiyer Can you give me an estimate when Apple Sign In will be supported as well? |
@BaranMichal25, we haven't tested Apple SignIn yet, it should work though when you follow the steps here. Couple of points to note are
|
@Amplifiyer I just have one issue currently:
So it looks like authentication worked, but just something is wrong with redirects or some callbacks? |
Thanks @BaranMichal25 for trying this out and letting us know the issue and reproduction steps. We will try to reproduce this on our end. It will help if you can open a new issue with the same details to help us track better. |
Hi @Amplifiyer. Is custom auth supported by this library yet? Specifically, I'm using a magic link set up with Amplify on the web (which works well) and I'm trying to support it on iOS and Android with Flutter. It doesn't seem to be working but I'm not sure if that's because the library just doesn't support it yet or if I'm doing something wrong. If it's not supported, do you have any idea when it might be added? It's a critical feature for me – if it's not imminent then I'll have to look into alternative options. If it is supported, I'll raise a separate issue to see what's going on. In brief, I've have the app working with username and password login but when I change to |
Amplify-flutter is now GA with new stable release |
@Amplifiyer and the entire team. Congratulations and thanks for all of the hard work! |
@pierceglennie When you say "magic link set up with Amplify" you mean the email link set up with Amplify CLI? If so, how exactly are you doing the routing in flutter? To answer your question - We are working on finalizing the custom auth capabilities of amplify-flutter, so please stay tuned. |
Sorry, I should have been clearer. The log in process on our website is:
The process is pretty much as described here, except we pass the code via the query string of the login link rather than requiring the customer to type it in: https://aws.amazon.com/blogs/mobile/implementing-passwordless-email-authentication-with-amazon-cognito/ For our Flutter app, we are looking to implement the same process for consistency (and since many customers don't have passwords). We have username and password log in working fine but it's the log in link process we're having issues with. We can successfully request a log in link (this happens via our own API which sets the custom auth code on Cognito). We have also set up this link so it will open our app using universal links. Once it's opened our app, we can extract the code from the query string. The only bit that we're struggling on is that the sign in method of the Amplify Flutter library requires the password (unlike the javascript library) which we don't have. On the iOS library, the docs recommend passing a dummy password to support this flow and then you'll get an Auth challenge as a response (and then you send the code). This doesn't seem to work with the Flutter library though, we just get a failure response. We have tried changing the authentication method to "CUSTOM_AUTH" in the amplify configuration file by the way. However, this doesn't fix the issue (probably because it's not yet supported) and it also stops username/password log in from working. Thanks for the great work on the library so far by the way! |
Any resolution on this? |
I didn't find any resolution. I'm basically waiting in the hope that it gets added to the library at some point relatively soon. |
I was able to do this, check out my answer here: https://stackoverflow.com/a/66463088/6559381 |
Thanks, that's good to see. I might try that out if it's not added to the official library in the next couple of months (it's not holding us back right now) |
How to add Amplify endpoint to flutter app for the .apk release of the app? I have been trying to make the .apk release of my flutter login app (which uses amplify as the backend) work but it gives out an error. The app works when I run it on an emulator or when my phone is connected to my laptop in developer mode. I have no clue where the endpoint needs to be set for the .apk release. Please help? |
@shouza1712 please create a new bug report in this repository to track this issue. This issue is meant for gathering feedback for early amplify-flutter development only. |
Closing this issue since Amplify for flutter is in GA. |
This issue is a Request For Comments (RFC). It is intended to elicit community feedback regarding support for Amplify library in Flutter platform. Please feel free to post comments or questions here.
Purpose
Currently there is no official support for integrating with Amplify libraries in Flutter apps. This RFC goes over a proposal to build and release Amplify libraries in pub.dev that can be used in cross platform flutter apps.
Goals
Definitions
Categories: Use case driven abstractions such as Auth, Analytics, Storage that provide easy to use interfaces.
Providers: A cloud provider or a service provider such as Cognito, Auth0 in Auth category; Kinesis, Pinpoint and Firehose in Analytics Category; Rekognition, Textract in Predictions Category.
Plugins: Also called Amplify Plugins, bind providers to categories. They implement provider functionalities adhering to categories easy-to-use interfaces. Amplify Plugins already exist in native platforms (iOS/Android), this RFC explores creation of similar plugins in Flutter.
Flutter Plugins/Platform Plugins/Federated Plugins: These are native platform code and modules that is called from flutter apps or libraries over a method channel.
Proposed Solution
High Level Overview
Amplify flutter will be architected as a pluggable interface across all the categories listed in the Goals. The pluggable interface will allow plugging in different cloud providers (e.g. Auth0 or Cognito for Auth category) which can be written either entirely in Dart or using Flutter's Platform Plugins to reuse native (iOS and/or android) modules.
The core of Amplify Flutter will be written in Dart which provides the pluggable interface and out of the box AWS cloud provider plugins will utilize existing Amplify Android and Amplify iOS libraries as Flutter's federated plugins. This means that we will not be implementing a Dart aws-sdk right away as AWS service calls will be made by Amplify Android/iOS libraries.
The Amplify flutter library will be compatible with Amplify CLI to create and provision your cloud providers' resources. Amplify CLI will generate a configuration file to easily configure your Flutter app to use these resources.
Pros
Developer Experience
Amplify.addPlugin()
for each plugin they import e.g.Amplify.addPlugin(CognitoAuthPlugin())
Amplify.Category.<API>
to use installed plugins, e.g.Amplify.Auth.signIn()
FAQs
Q. Which versions of Android and iOS are supported?
Same versions as supported by Amplify Android and Amplify iOS libraries.
Q. How will escape hatches work with Amplify plugins that use native libraries?
Coming Soon.
Q. How will events that are emitted in native libraries reach Flutter apps.
We will use Flutter's event channels to subscribe events on the native platform and transmit them over to Dart end.
Q. Will web and Desktop platform be supported?
Not right away, our goal with this design is to keep the architecture flexible such that more platforms can be supported in the future.
Q. Can I migrate my Amplify CLI generated config from Android, iOS or JS platform to flutter?
Not right now. We will look into the feasibility of supporting this in the future.
The text was updated successfully, but these errors were encountered: