Aller au contenu
View in the app

A better way to browse. Learn more.

Forum Automobile Propre

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[App Tierce] Tesla Tokens (Android)

Featured Replies

Posté(é)

Hello,

Après les changements récents sur le système d'authentification de Tesla, et la difficulté à obtenir un token Tesla pour utiliser les différentes applications tierces existantes, je me suis lancé dans une application Android assez basique permettant de générer et d'obtenir un token Tesla.

L'application affiche LA page de connexion Tesla.

Du coup l'appli supporte tout, Captcha, MFA, ...

 

Screenshot_20210601-215401.thumb.jpg.a9d2373efffff9b0046c65f861ccdaa2.jpg >>  Screenshot_20210601-215409.thumb.jpg.28925d9794b6882638a9961f6f341fcc.jpg >(Si MFA activé)>Screenshot_20210602-093407.thumb.jpg.189560682f51772be9f8e3b82e9280c9.jpg >>  Screenshot_20210601-215430_2.thumb.jpg.6df78ef0e797684d2aaed67116be0273.jpg

 

C'est une première version, elle sera surement enrichie avec quelques fonctionnalités par la suite (j'ai déjà quelques idées), mais je la sort rapidement pour débloquer ceux qui le sont actuellement avec les changements récents.

 

Elle sera gratuite et dispo sur le Play Store, ici :

google-play-badge.png.1b5b44ebdcc5a09a508bf42dee923750.png

 

Je précise que les login et mot de passe sont entrés directement dans la page de login Tesla et ne sont jamais donc entré dans l'application en elle même. Aucun problème côté sécurité donc.

Et les tokens générés sont conservés sur le téléphone uniquement.

Enjoy !

 

Modifié par denouche

Posté(é)

Merci pour cette appli utile et simple à utiliser.

Est-ce qu'elle fonctionne avec le 2FA ?

Posté(é)
  • Auteur
Il y a 1 heure, Catequil a dit :

Merci pour cette appli utile et simple à utiliser.

Est-ce qu'elle fonctionne avec le 2FA ?

Comme dans la pub Peugeot : "Elle l'a"

Ou sinon y'a la réponse en chanson : "Ella, elle l'a, Hou hou houhou hou houhou"

 

Plus sérieusement, l'application n'affiche pas une page qui "ressemble" à la page de connexion Tesla, c'est LA page de connexion Tesla. Du coup l'appli supporte tout, Captcha, MFA, ...

Posté(é)
  • Auteur
il y a 56 minutes, Catequil a dit :

C'est ton screen plus haut qui induit en erreur... emoji51.png

Je ne suis pas sûr de comprendre en quoi il induit en erreur ?

C'est le formulaire de connexion classique, le 2FA est sur une page séparée, suite au login.

Posté(é)

Je pensais voir celui-ci avec la captcha, mais oui tu as raison, c'est la fenêtre classique.

Je retourne boire un café... [emoji850]
a56d8040e1d9ea147f2d4f2f07e0e5d1.jpg

Posté(é)
  • Auteur
il y a 7 minutes, Catequil a dit :

Je pensais voir celui-ci avec la captcha, mais oui tu as raison, c'est la fenêtre classique.

Je retourne boire un café... emoji850.png
a56d8040e1d9ea147f2d4f2f07e0e5d1.jpg

Ah je comprends !

Alors oui, elle l'a, mais Tesla a fait machine arrière sur le Captcha depuis hier soir. 

Alors mon appli est toujours valable, mais en effet sur le screenshot il n'y a pas de Captcha ...

Je mettrai à jour s'ils le remettent. 

Posté(é)
  • Auteur

L'application est dispo sur le play store !

Elle est vraiment basique pour le moment mais fait le minimum.

Je pousserai une mise à jour rapidement avec quelques trucs en plus. 

Posté(é)
Il y a 12 heures, Catequil a dit :

Merci pour cette appli utile et simple à utiliser.

Est-ce qu'elle fonctionne avec le 2FA ?

oui, je suis en 2FA, et j'ai pu me connecter avec l'autre appli de denouche qui fonctionne de la même façon.

denouche, heureusement que tu n'avais pas fait cette appli avant, sinon je n'aurais pas acheté l'autre.

Or tu mérites d'être récompensé

Je ne regrette pas d'avoir acheté l'autre

Modifié par tben

Posté(é)
  • Auteur
il y a 21 minutes, tben a dit :

denouche, heureusement que tu n'avais pas fait cette appli avant, sinon je n'aurais pas acheté l'autre.

Or tu mérites d'être récompensé

Je ne regrette pas d'avoir acheté l'autre

Merci !!

Je vais intégrer un petit bouton "faire un don" à cette nouvelle application, pour ceux qui veulent.

Mais en effet Tesla Advanced Notification apporte plein d'autres choses, là cette appli là c'est juste la page de login finalement. 

Et j'en ai une autre en préparation, je ne tease pas plus pour l'instant mais il y a moyen qu'elle plaise aussi !

Modifié par denouche

Posté(é)
Il y a 13 heures, denouche a dit :

Et j'en ai une autre en préparation, je ne tease pas plus pour l'instant mais il y a moyen qu'elle plaise aussi !

Merci @denouche pour les tokens.

j'avais la flemme de refaire la procédure de génération de nouveaux token, tu m'as fait gagné 15 min de ma vie!

 

Et j'ai vu le teaser pour ta prochaine appli, effectivement, ça a l'air très intéressant!

Posté(é)
  • Auteur

Au passage si vous pouvez mettre une note et / ou un commentaire sur l'application, ça serait cool, ça permettrait à l'application de remonter naturellement dans les résultats de recherche. 

Merci !

Posté(é)
  • Auteur
Il y a 5 heures, matesla3etaitsurleglovis a dit :

Grace à Denouche, mon app https://matesla.herokuapp.com revit.

Voila la nouvelle page de login ou je fais sa pub :-)

 

 

Capture d’écran de 2021-06-04 04-59-43.png

Merci ☺️

Par contre pour la phrase "le jeton est invalidé quand vous changez votre mot de passe" je crois que cette affirmation n'est plus vraie depuis le changement du système d'authentification de Tesla début février. 

A tester mais il me semble bien !

Posté(é)
Il y a 5 heures, denouche a dit :

Merci ☺️

Par contre pour la phrase "le jeton est invalidé quand vous changez votre mot de passe" je crois que cette affirmation n'est plus vraie depuis le changement du système d'authentification de Tesla début février. 

A tester mais il me semble bien !

 

Je viens de tester, j'ai changé mon mot de passe... et j'ai été forcé de régénérer un nouveau token pour mon site. Et même chose pour l'app tesla, elle m'a demandé mon login et mot de passe tesla.

 

Donc, je garde la phrase, elle est correcte :-)

 

Heureusement d'ailleurs. Sinon, on se fait hacker ou car jacking  ou phishing ou je ne sais quoi, on change son mot de passe et l'indélicat continuerait à avoir accès à la voiture?

Posté(é)
  • Auteur
Il y a 6 heures, matesla3etaitsurleglovis a dit :

 

Je viens de tester, j'ai changé mon mot de passe... et j'ai été forcé de régénérer un nouveau token pour mon site. Et même chose pour l'app tesla, elle m'a demandé mon login et mot de passe tesla.

 

Donc, je garde la phrase, elle est correcte :-)

 

Heureusement d'ailleurs. Sinon, on se fait hacker ou car jacking  ou phishing ou je ne sais quoi, on change son mot de passe et l'indélicat continuerait à avoir accès à la voiture?

Cool ! Bonne nouvelle alors !

Merci d'avoir fait le test !

Posté(é)
Le 01/06/2021 à 21:52, denouche a dit :

Je précise que les login et mot de passe sont entrés directement dans la page de login Tesla et ne sont jamais donc entré dans l'application en elle même. Aucun problème côté sécurité donc.

Oui, a condition de faire confiance à l'auteur de l'application.

Tesla a commencé à faire les choses bien en mettant en place une authentification oauth standard qui aurait pu permettre à n'importe quelle appli de s'authentifier sans devoir donner ses identifiants a n'importe qui, mais ils ont eu la bonne idée de vérrouiller l'url de callback qui ne peut pas être autre chose que celle utilisée par Tesla. Or c'est ce mécanisme qui permet de recevoir le token sans devoir faire l'authentification dans une webview non sécurisée et avoir à intercepter l'url de callback de façon détournée. Je dis que la webview n'est pas sécurisée parce qu'à partir du moment ou on ouvre une page dans une webview l'app peut faire ce qu'elle veut avec, dont écouter le champ mot de passe pour récupérer sa valeur...

La seule bonne façon de faire est d'ouvrir la page d'authentification dans le navigateur du téléphone, ou un chrome tab, donc hors du champ d'action de l'app, et recevoir la réponse via une url de callback personnalisée. Mais pour ça, il faudrait que Tesla veuille officiellement ouvrir son API a tout le monde, ce qui n'est pas gagné.

Posté(é)
  • Auteur
Il y a 3 heures, Tchettane a dit :

Oui, a condition de faire confiance à l'auteur de l'application.

Tesla a commencé à faire les choses bien en mettant en place une authentification oauth standard qui aurait pu permettre à n'importe quelle appli de s'authentifier sans devoir donner ses identifiants a n'importe qui, mais ils ont eu la bonne idée de vérrouiller l'url de callback qui ne peut pas être autre chose que celle utilisée par Tesla. Or c'est ce mécanisme qui permet de recevoir le token sans devoir faire l'authentification dans une webview non sécurisée et avoir à intercepter l'url de callback de façon détournée. Je dis que la webview n'est pas sécurisée parce qu'à partir du moment ou on ouvre une page dans une webview l'app peut faire ce qu'elle veut avec, dont écouter le champ mot de passe pour récupérer sa valeur...

La seule bonne façon de faire est d'ouvrir la page d'authentification dans le navigateur du téléphone, ou un chrome tab, donc hors du champ d'action de l'app, et recevoir la réponse via une url de callback personnalisée. Mais pour ça, il faudrait que Tesla veuille officiellement ouvrir son API a tout le monde, ce qui n'est pas gagné.

À ma connaissance ce que tu décris n'est pas possible sous Android. 

Une Webview lancée dans une application ne partage pas les data qu'elle fait transiter avec l'application en question.

 

Il est possible de faire interagir la page web avec l'application avec une interface JavaScript (décris ici https://developer.android.com/guide/webapps/webview#BindingJavaScript)

mais il faut que le code JavaScript et le code de l'application fonctionne conjointement. Le principe d'une interface c'est qu'un des deux parti l'expose et l'autre l'utilise. En l'occurrence j'aurais beau exposer une interface, le code JavaScript de la page de login Tesla ne l'appellera jamais. Donc l'écoute du champ "mot de passe" n'est pas possible. 
 
Les données qui sont envoyées lors du login le sont par un POST HTTP, et le mot de passe est envoyé dans le body de la requête. 
Cette partie des requêtes qui transitent ne sont pas accessibles par l'application. L'application peut écouter un changement d'URL, c'est tout. Donc à ce niveau là non plus l'application ne peut pas récupérer le mot de passe. 
 
Je veux bien qu'on avance sur un poc (proof of concept) de ce que tu avances, juste pour être fixé et asseoir nos connaissances du sujet, mais à ma connaissance ça n'est pas possible. Mais je ne demande qu'à me tromper !
 
Dernier point important : je te rejoins complètement quand tu dis que la seule méthode propre serait de pouvoir personnaliser l'URL de callback, mais comme tu le dis malheureusement Tesla ne le permet pas (pour l'instant ?).
Posté(é)

  

Il y a 19 heures, denouche a dit :

Je veux bien qu'on avance sur un poc (proof of concept) de ce que tu avances, juste pour être fixé et asseoir nos connaissances du sujet, mais à ma connaissance ça n'est pas possible. Mais je ne demande qu'à me tromper !

 

Rien de plus simple, avec une interface javascript et l'exécution d'une fonction JS via loadUrl() :

 

https://photos.app.goo.gl/41hrT7FAkSV43Mat6

 

// init webview
binding.webview.apply {
    settings.javaScriptEnabled = true
    loadUrl(authUri.toString())

    val ji = object {
    	@JavascriptInterface
    	fun onPassword(value: String?) {
    		Log.d("PASSWORDLOGGER", "Password : $value")
    		binding.passwordOutput.text = "Your password is : $value"
    	}
    }
    addJavascriptInterface(ji, "android")
}


// récupérer le password
binding.webview.loadUrl("javascript:android.onPassword(document.getElementById(\"form-input-credential\").value)")

 

Modifié par Tchettane

Posté(é)
  • Auteur
Il y a 4 heures, Tchettane a dit :

Rien de plus simple, avec une interface javascript et l'exécution d'une fonction JS via loadUrl() :

Super démo, merci !

J'avais bien fait de préciser "à ma connaissance" 😅

Bon du coup le seul moyen sécurisé est bien la callback personnalisable qui est bloquée côté Tesla. 

Sinon j'avais pensé open sourcer le code de l'application (c'est dans la to-do list), mais rien ne prouve que le code que j'envoie sur le play store est bien le code que vous lirez sur GitHub. Une nouvelle fois c'est une question de confiance.

À moins de repartir du code et de le compiler soi même...

Modifié par denouche

Posté(é)

Oui après le but n'est pas d'être parano non plus :)

Je préfère largement avoir une app comme la tienne pour générer des token que de rentrer mon login/mdp dans 15 app différentes qui ne font pas forcément les choses aussi proprement !

  • 2 mois plus tard...
Posté(é)
Le 01/06/2021 à 21:52, denouche a dit :

Hello,

Après les changements récents sur le système d'authentification de Tesla, et la difficulté à obtenir un token Tesla pour utiliser les différentes applications tierces existantes, je me suis lancé dans une application Android assez basique permettant de générer et d'obtenir un token Tesla.

L'application affiche LA page de connexion Tesla.

Du coup l'appli supporte tout, Captcha, MFA, ...

 

Screenshot_20210601-215401.thumb.jpg.a9d2373efffff9b0046c65f861ccdaa2.jpg >>  Screenshot_20210601-215409.thumb.jpg.28925d9794b6882638a9961f6f341fcc.jpg >(Si MFA activé)>Screenshot_20210602-093407.thumb.jpg.189560682f51772be9f8e3b82e9280c9.jpg >>  Screenshot_20210601-215430_2.thumb.jpg.6df78ef0e797684d2aaed67116be0273.jpg

 

C'est une première version, elle sera surement enrichie avec quelques fonctionnalités par la suite (j'ai déjà quelques idées), mais je la sort rapidement pour débloquer ceux qui le sont actuellement avec les changements récents.

 

Elle sera gratuite et dispo sur le Play Store, ici :

google-play-badge.png.1b5b44ebdcc5a09a508bf42dee923750.png

 

Je précise que les login et mot de passe sont entrés directement dans la page de login Tesla et ne sont jamais donc entré dans l'application en elle même. Aucun problème côté sécurité donc.

Et les tokens générés sont conservés sur le téléphone uniquement.

Enjoy !

 

Bonjour ils sont Stocker ou dans le téléphone?

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.