PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Authentification OAuth Android / IOS
Authentification OAuth Android / IOS
Débuté par Eru, 10 juil. 2020 15:23 - 4 réponses
Membre enregistré
4 messages
Posté le 10 juillet 2020 - 15:23
Bonjour,
J'essaye de réaliser une application avec une authentification OAuth 2.0.

L'authentification fonctionne très bien en débug (emulation android) mais ne fonctionne pas sur téléphone Android.

Procedure pg_OAuth()

OAuth2Params est OAuth2Paramètres
OAuth2Params..ClientID = "********"
OAuth2Params..URLAuth = "http://preprod.moncompte.*****/provider/connect/authorize"
OAuth2Params..URLToken = "http://preprod.moncompte.*****/provider/connect/token"
OAuth2Params..URLRedirection = "http://localhost:9000/"
OAuth2Params..Scope = "api.client.full openid"
OAuth2Params..ParamètresSupplémentaires = "response_type=id_token token&nonce=1"

// Demande d'authentification : ouvre la fenêtre de login
Token = AuthIdentifie(OAuth2Params)
Info(Token.Valide)
Info(Token.Valeur)
Info(Token.RéponseServeur)
SI Token <> Null ALORS

SI ErreurDétectée ALORS
Erreur(ErreurInfo())
SINON
QUAND EXCEPTIONEXCEPTION DANS
req est une httpRequête
req.URL = "http://preprod.moncompte.*****/provider/connect/userinfo"
req.AuthToken = Token
req..ContentType = "application/json"
req..Méthode = httpGet
rep est un httpRéponse = HTTPEnvoie(req)
JSON est une chaîne ANSI = rep..Contenu
identite = JSONVersVariant(JSON)
RENVOYER Vrai
FAIRE
Erreur("Erreur lors de l'authentification","Code erreur : 0x001")
RENVOYER Faux
FIN
FIN
FIN


RENVOYER Faux




Je vous remercie d'avance.
Membre enregistré
4 messages
Posté le 11 juillet 2020 - 10:54
Voici les url retournée dans les deux cas :

Debug émulation Android (fonctionne) :
http://localhost:9874/
?id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IldjclFQTVloQjlELUx3NC1ERHFUUnJzcmJXayIsImtpZCI6IldjclFQTVloQjlELUx3NC1ERHFUUnJzcmJXayJ9.eyJpc3MiOiJodHRwOi8vcHJlcHJvZC5tb25jb21wdGUuZWRlZG9jLmNvbS9wcm92aWRlciIsImF1ZCI6IjQ3NzE0OGIwLWNhYzEtZWExMS04MGQ1LTAwNTA1NmJhMjM1ZSIsImV4cCI6MTU5NDQ1NjE2OCwZWExMS04MGQ1LTAwNTA1NmJhMjM1ZSIsImF1dGhfdGltZSI6MTU5NDQ0OTQ4NSwiaWRwIjoiaWRzcnYiLCJodHRwOi8vbm92ZW5jaS5mci9zZWN1cml0eS9jbGFpbXMvVXNlckFjY291bnRJZCI6ImRlZjc3ZTIzLTc3YzItZWExMS04MGQ1LTAwNTA1NmJhMjM1ZSIsImFtciI6WyJwYXNzd29yZCJdfQ.uWiM-TZSm1A1rUrw7EhXFBWUSbR2av8AqTDcTQGlUsjLMp8_hSTba0atLC1A_uQqOkNCwAcS_U_cI-LbLrFfQUwKisPUM3QYrziweXDyY_mtIacmlHjnP1ScoPj1J_NevYfkFFv87FMoJwQgfE6f2ZYAcz4YjDE7DXkwqXyWtX6tF9PnAqJZ1XQS1fRgIIwy_2WfYrSS7eUbyrnt9pCTgwYum8cPbSlLilZ2FO9_mPex4i3s2I_Xy5d_sbupZ9f8z3lGLjTWnISX0MrrcZqtPNX_sJ07yxmUUPn7Bp9u2D8kkwT51BwpHFEpSOZdpCrAJWnDSvnaO5lOcHVDq1aEIg
&access_token=060023e2eadae92286971a9e1
&token_type=Bearer
&expires_in=3600
&scope=api.client.full%20openid
&state=16071507853420064659


Sur android (ne fonctionne pas => token..RéponseServeur = "" ) :
http://localhost:9874/
#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IldjclFQTVloQjlELUx3NC1ERHFUUnJzcmJXayIsImtpZCI6IldjclFQTVloQjlELUx3NC1ERHFUUnJzcmJXayJ9.eyJpc3MiOiJodHRwOi8vcHJlcHJvZC5tb25jb21wdGUuZWRlZG9jLmNvbS9wcm92aWRlciIsImF1ZCI6IjQ3NzE0OGIwLWNhYzEtZWExMS04MGQ1LTAwNTA1NmJhMjM1ZSIsImV4cCI6MTU5NDQ1NjExMCwibmJmIjoxNTk0NDU1ODEwLCJub25jZSI6IjFvM204bXhoZzA2IiwiaWF0IjoxNTk0NDU1ODEwLCJhdF9oYXNoIjoiQ05LY3RzLU5nYnFkdGdOM2JIMFVvUSIsInN1YiI6ImRkZjc3ZTIzLTc3YzItmRlZjc3ZTIzLTc3YzItZWExMS04MGQ1LTAwNTA1NmJhMjM1ZSIsImFtciI6WyJwYXNzd29yZCJdfQ.kqnFr11pPjlDFotmYVaXdsKAqBIgOaRHw3f_LncgQcCpH8l_gJ1nU_ewGNmkYk6eS3kNZFLZ9eNt-gw7LYFI8EzCinh1bMmexUe8QdTEWW_ZCidx9qlAsMy7tCoohsyQC3lp0lqWbgN8uzmJn1Cn9MP92GAZOa20TQbnLkrH6sEmu3dzhCGicTsqfQTUuths7gA8plniMBxq7InG4t13Ky9iRlZRYM26Ud26Igt7y9w4H9r0KKIb1w7Ool5GMjDM4i-bz6bl-MqHEEOlrFf6fmqoBV51DjRqrZcJgf33kQj-yTUbCQrvRaWqPBiStJUfjFf5sayuLLj8I_XU6w1aeA
&access_token=2c8242a8fdbfc1079fee1607
&token_type=Bearer
&expires_in=3600
&scope=api.client.full%20openid
&state=4906702505183


J'ai vérifier si le token, il fonctionne correctement dans les deux cas.

Pour l'émulation j'ai un ? après http://localhost:9874/ tandis qu'avec un tel android il me met un #.
Faut-il changer l'url de callback en quelquechose du genre myapp://quelquechose ? Si oui quelle est la structure de l'url de callback ?

Je vous remercie
Membre enregistré
4 messages
Posté le 17 juillet 2020 - 08:18
up
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 17 juillet 2020 - 16:33
déjà tu peux remplacer localhost par l'ip lan
si tu es en réseau local
ensuite par l'ip wan (ne pas oublié de paramétrer ton routeur en conséquence)
si tu es via internet
et vérifier aussi ton pare-feu
Membre enregistré
4 messages
Posté le 18 juillet 2020 - 10:01
Je te remercie pour ta réponse même si elle ne concerne en rien mon cas.
En Oauth 2.0 tu as des url de redirection, qui sont paramétré côté serveur, mon fameux http://localhost:9874/

Rien a voir avec le pare-feu non plus.