Benutzerdefinierte Android-Chrome-Tabs / Fitbit-Web-API wird nicht umgeleitet, wenn die App bereits autorisiert ist. (OAuth2.0)

8

Ich beabsichtige, eine Fitbit-App von Drittanbietern für die Alarmsynchronisierung zu erstellen.

Ich habe jedoch einige Schwierigkeiten bei der Registrierung meiner App festgestellt, genauer gesagt beim Erhalt des Zugriffstokens, obwohl mein Kunde bereits in der App registriert ist. (In Anbetracht des Szenarios, dass ein Benutzer seine Anwendung neu installiert).

Ich verwende benutzerdefinierte Chrome-Registerkarten (da WebView von FitBit verboten ist), um das Zugriffstoken anzufordern:

%Vor%

Nach dem Umleiten zu dem benutzerdefinierten Schema, das mit einem Intent-Filter definiert wurde:

%Vor%

TestActivity sollte starten, wo ich meine AccessToken von der angegebenen Absicht bekomme:

%Vor%

}

Alles funktioniert gut beim ersten Lauf (vorausgesetzt, dass der Client nicht bereits autorisiert ist), aber danach, wenn ich mein Zugriffstoken wieder bekommen möchte (ich weiß, dass ich es lokal speichern sollte - SharedPreferences wahrscheinlich, aber das ist es) nur für Testzwecke) Chrome benutzerdefinierte Registerkarten öffnen und bleiben auf einer leeren Seite (anscheinend wird es nicht richtig umleiten).

Ich habe die FitBit WEB API gelesen und es sagt Folgendes: Wenn eine Anwendung, die den Implicit Grant-Flow verwendet, einen Benutzer an die Autorisierungsseite sendet, bevor das zuvor ausgestellte Zugriffstoken abgelaufen ist, wird der Benutzer nur dann aufgefordert, wenn der Bereich erweitert wurde. Der Benutzer wird sofort mit einem Zugriffstoken an die Anwendung weitergeleitet.

Also meine Frage ist, ob es einen Fehler in meinem Nachdenken über das Problem oder ein
gibt ein Chrome benutzerdefinierte Tabs Fehler sollte ich abfangen?

Vielen Dank im Voraus.

    
Buruiană Cătălin 19.11.2015, 21:46
quelle

2 Antworten

5

Ich habe einen Workaround für dieses Problem gefunden. Im Grunde füge ich einen neuen Parameter in die URL mit der Abfrage für die Fitbit API ein. ("& amp; prompt = Login"). Dieser Parameter fordert den Benutzer auf, sich jedes Mal erneut anzumelden, wenn er nach dem Autorisierungstoken fragt und ihn abmeldet, wenn er bereits angemeldet ist.

    
Buruiană Cătălin 02.12.2015, 18:46
quelle
0

Ich denke also, dass Fitbit 302 umleitet, wenn der Benutzer bereits angemeldet ist. Also habe ich diese Lösung verwendet (diese Lösung wurde mit CustomTabActivityHelper von Chrome-Tab-Demo ) und das Problem wurde behoben. Yay.

  

Ich konnte das Problem beheben, indem ich zuvor die Warmup-Funktion aufruft   Laden der URL, die umleitet.

Benutzerdefinierte Chrome-Tabs werden auf die Android-App umgeleitet Schließt die App

    
Gaurav Vashisth 15.08.2016 12:47
quelle