IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Système open ID pour application android


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut Système open ID pour application android
    Salut tout le monde, je dévloppe une app android pour mon mémoire de fin de license et mon professeur maitre de mémoire m'a conseillé d'utiliser un systeme openID pour le login des utilisateurs de mon application, j'ai fait quelque recherche mais rien de très convainquant pour l'appliquer dans mon code :S est ce que quelqu'un aurait des infos la dessus ?

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Salut.

    Si tu veux l'id du téléphone :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String deviceId = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
    C'est dans l'exemple de code pour LicenseCheck donc ça ne doit pas être de la merde.
    Il existe une autre façon de récupérer un ID, mais c'est pas exactement le même et il faut une autorisation en plus.
    Keith Flint 1969 - 2019

  3. #3
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Ton code sert plutot à récupérer l'adresse MAC du téléphone non ? Moi ce que j'aimerais c'est que mon application marche avec mon compte gmail et je pense meme que du coup vu que je suis connecté à mon compte gmail sur mon phone android ben je ne dois pas me logger sur mon application ...

  4. #4
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ah ben il fallait préciser que tu recherchais le compte associé au téléphone !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
    Account[] accounts = AccountManager.get(context).getAccounts();
    for (Account account : accounts) {
        if (emailPattern.matcher(account.name).matches()) {
            String possibleEmail = account.name;
            ...
        }
    }
    Avec ça dans le manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    http://stackoverflow.com/questions/2...e-mail-address
    Keith Flint 1969 - 2019

  5. #5
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Merci ;-) c'est déjà un bon début pcq je n'avais pas encore recherché comment récupérer le mail du phone mais ce que je cherches surtout à faire pour le moment c'est plutot trouver des infos sur comment implémenter l'OpenID, il doit y avoir un lien à faire avec un webservice de google ou quelque chose pour le systeme d'authentification se fasse par Google pour mon application et donc que je n'ai pas mon propre systeme d'authentification mais que google le fasse à m a place ce qui d'une part m'éviterait de stocker des mots de passes dans ma base de données et surtout éviterait à mes utilisateurs de créer un nouveau login dédier à cette application vu qu'il utiliseront leur login gmail !

  6. #6
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Voila à quoi ressemble une authentification openID google à partir d'un site web :


  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    Tu pourrais utiliser Oauth je crois qu'il y a plus de doc ou que c'est peut etre plus accessible pour android maintenant je n ai jamais essayer donc je pourrais pas t'aider sur ce point :S

  8. #8
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Ou regarder s'il y a des bibliothèques déjà faite le permettant.
    J'ai trouvé : http://code.google.com/p/openid4java/
    Pour du Java, à voir si c'est compatible avec Android, je te laisse tester
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  9. #9
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Keith Flint 1969 - 2019

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Personnelement, je partirai plutot sur l'idée de thierrybenji avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
    Account[] accounts = AccountManager.get(context).getAccounts();
    for (Account account : accounts) {
        if (emailPattern.matcher(account.name).matches()) {
            String possibleEmail = account.name;
            ...
        }
    }
    ou ce code là :

    http://stackoverflow.com/questions/4...android-phones

    Car ce que tu voudrais faire en gros (et ce que openID te permet de faire sur une machine normal et pas vrmt un mobile android) c'est de vérifier que l'utilisateur est bien logger à son compte google ce qui se fait en passant par les cookies de ton navigateur HORS sur ton mobile android tu es obligatoirement lier à ton compte google et tu peux donc récupérer l'adresse à partir du code ci dessus de plus si j'ai bien compris tu aimerais que les logins soient les comptes Google de l'appareil alors voila ... je pense que ca ne sert à rien d'implémenter quelque chose comme ca alors que ton mobile est déjà connecté au compte google !

    Qu'est ce que vous en pensez ?

  11. #11
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    OAuth c'est pas seulement l'authentication...

    OAuth permet de faire de la délagation de permissions...
    Je m'explique...

    Disons que tu veuille pouvoir accéder aux mails du compte gmail depuis l'application:
    Solution 1 que je n'aime pas, demander à l'utilisateur ses crédentials.
    Solution 2 (OAuth), demander à l'utilisateur d'autoriser l'application à accéder à ses mail...

    Donc on a 3 autorités:
    * L'application
    * GMail
    * google-auth

    L'utilsateur est enregistré chez google-auth, et veut accéder à GMail par l'intermédiaire de l'application, c'est ce que permet OAuth: L'application demande à GMail l'autorisation d'accès avec le login google-auth... elle recoit alors une clé (permanente), qui combinée avec la clé google-auth (variable) permet d'accéder à GMail (sans avoir à redemander quoique ce soit à l'utilisateur).

    Je sais pas si je me suis bien exprimé là d'un coup
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  12. #12
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Merci à tous pour votre aide ! Mais ce qu'ont dis Kracels et thierrybenji a du sens, en fait en étudiant ces deux solutions (openID et Oauth) j'en ai conclu que les deux principaux avantages (les seuls qui m'importent dans mon app) sont d'une part de ne pas avoir à gérer un système d'authentification ainsi que de ne pas avoir à créer un nouveau login et mdp dédié à cette application seulement. J'en ai aussi conclu qu'elles sont pas simples à implémenter sur android et sont plutôt adaptés lors d'une authentification à partir d'un navigateur web étant donné qu'une fois authentifié les informations sont conservées dans des cookies pour éviter que l'utilisateur ait à se logger à chaque fois.

    En fait si j'utilise la solution de thierrybenji je récupère le login du compte google utilisé sur le mobile android ce qui certifie d'une part que l'utilisateur est connecté à son compte google sans faire de requête vers un serveur google, sans passer par un navigateur ou des cookies et surtout de pouvoir s'authentifier sans internet (certaines fonctionnalités de mon application ne nécessite pas d'internet). Et je ne dois pas non plus stocker de mdp... mon but était quand meme que le user utilise son compte google donc ca me semble etre une solution openID simplifié non :p ??

  13. #13
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Karly Voir le message
    J'en ai aussi conclu qu'elles sont pas simples à implémenter sur android et sont plutôt adaptés lors d'une authentification à partir d'un navigateur web étant donné qu'une fois authentifié les informations sont conservées dans des cookies pour éviter que l'utilisateur ait à se logger à chaque fois.
    Non non, sur un browser l'authentication peut être conservée dans un cookie, mais n'importe quelle application peut demander un "token" OAuth (et le raffraichir régulièrement) sans passer par les cookies...

    Récupérer le nom du compte est "suffisant" pour identifier un utilisateur (et encore, j'ai trois comptes google attachés à mon phone... lequel choisir ?), mais pas pour l'authentifier par contre.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  14. #14
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    pour s'authentifier il suffirait de l'enregistrer dans la BDD par contre quand tu dis que tu as trois comptes google, lequel est ce que ce code renverrait ? :S

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
    Account[] accounts = AccountManager.get(context).getAccounts();
    for (Account account : accounts) {
        if (emailPattern.matcher(account.name).matches()) {
            String possibleEmail = account.name;
            ...
        }
    }

  15. #15
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je viens justement de faire le test pour voir... il me renvoit bien les 3, mais le premier est le "professionel" (uniquement utilisé pour gmail et les contacts).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Système & taille d'une application Android
    Par KimBo-OKNI dans le forum Android
    Réponses: 2
    Dernier message: 23/06/2010, 09h52
  2. Réponses: 0
    Dernier message: 06/12/2009, 10h58
  3. Systèmes de templates pour application Web
    Par bouba dans le forum Frameworks Web
    Réponses: 7
    Dernier message: 23/10/2007, 02h38
  4. Réponses: 2
    Dernier message: 15/09/2006, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo