webentwicklung-frage-antwort-db.com.de

Amazon Cognito: Wie wird der Fehler "redirect_mismatch" beim Umleiten vom Browser an die Android-App abgebrochen?

Ich versuche, ein Android-Projekt zu erstellen, bei dem ich einen Benutzer autorisieren kann, indem er sich bei Amazon Cognito in einem Browser anmeldet, der dann Weiterleiten zu meiner App sollte. Leider erhalte ich beim Öffnen des Browsers anstelle der richtigen Anmeldeseite diese Fehlermeldung:

 enter image description here

In meiner AuthenticatorActivity.Java:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_authenticator);

    Uri authzUrl = Uri.parse("https://<myDomain>.auth.us-west-2.amazoncognito.com/login?response_type=token&client_id=<myClientId>&redirect_uri=myapp://mainAct");
    Intent launchBrowser = new Intent(Intent.ACTION_VIEW, authzUrl);
    startActivity(launchBrowser);
}

In AndroidManifest: 

<activity Android:name=".MainActivity">
    <intent-filter>
        <action Android:name="Android.intent.action.VIEW" />
        <category Android:name="Android.intent.category.DEFAULT" />
        <category Android:name="Android.intent.category.BROWSABLE" />
        <data Android:Host="mainAct" Android:scheme="myapp"></data>
    </intent-filter>
</activity>

Ich kann nicht herausfinden, was ich hier falsch mache. Verpasse ich einen Schritt? 

4
JHowzer

Überprüfen Sie Ihre Rückruf-URL und melden Sie sich ab. Das richtige Format ist:

app_client_name:https://www.myapp.com/

Bildbeschreibung hier eingeben

2
Alok Verma

In meinem Fall lag der Fehler daran, dass CloudFront die alten Dateien bereitstellte.

Es zu lösen; Sie können CloudFront-Dateien über die AWS-Konsole ungültig machen. p.s. Kann benutzen /* um alle Dateien ungültig zu machen https://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

1
Neil

Ok, ich hinterlasse hier einen Leckerbissen für jeden, der es als nächstes finden könnte. Ich habe genau diese Ausgabe für dieses Problem gefunden, aber als Neuling bei Cognito und IdP/SSO hatte ich keine Idee, wie ich das beheben könnte. Hier ist das, was ich getan habe, um das Problem zu beheben. Wir haben uns in einen externen Service integriert und diesen Fehler erhalten. Unter Chrome Developer Tools -> Network habe ich begonnen, die besuchten URLs aufzuzeichnen. Dann habe ich die SSO-Integration erneut versucht. In der Liste wurde eine URL angezeigt, die Cognito mit einer Weiterleitung zur URL besuchte. Diese URL muss dieselbe URL sein, die unter der Callback-URL für Cognito aufgeführt ist. 

Hoffentlich spart dies jemandem in der Zukunft etwas Zeit.

0
rlasch