FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 25
→
Rest with autenticacao
Rest with autenticacao
Débuté par BOLLER, 05 mar. 2020 22:06 - 4 réponses
Connectez-vous…
BOLLER
#1
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 05 mars 2020 - 22:06
Exemplo
Procedure
_VérifieAuthentification
(
LOCAL
buf
Données
is
Buffer
,
LOCAL
s
Utilisateur
is string
,
LOCAL
s
Signature
is string
)
// Sauve l'utilisateur
s
UtilisateurRecu
is string
=
s
Utilisateur
// Flag iOS
biOS
is boolean
// lit l'utilisateur
IF
HReadSeekFirst
(
Utilisateur
,
Login
,
s
Utilisateur
) =
False
THEN
// On ne trouve pas l'utilisateur
RESULT
""
END
// Sauve la clé privée sur le disque temporairement
s
EmplacementClePrivee
is string
=
fDataDir
(
) + [
fSep
] +
GetGUID
(
guidRough
) +
".pem"
IF
fSaveBuffer
(
s
EmplacementClePrivee
,
Utilisateur.ClePrivee
) =
False
THEN
RESULT
"Impossible de sauver la clé"
END
// Décrypte le buffer de données avec la clé privée de l'utilisateur
s
Decrypte
is string
=
DecryptAsymmetric
(
HexaToBuffer
(
buf
Données
)
,
s
EmplacementClePrivee
,
""
,
cryptPaddingPKCS1
)
// Si erreur, possible due à iOS qui encode pas comme il faut, on change l'encodage
IF
s
Decrypte
~
~
""
THEN
// Conversion des données
buf
OK
is
Buffer
FOR i
=
1
_TO_
Length
(
buf
Données
)
IF Modulo
(i,
4
)
IN
(
0
,
3
)
THEN
// on ne prend pas
ELSE
// Copie dans un buffer correct
buf
OK
+
=
buf
Données
[
[i]
]
END
END
buf
Données
=
buf
OK
// Récupère la chaine unicode
s
Decrypte
=
DecryptAsymmetric
(
HexaToBuffer
(
buf
Données
)
,
s
EmplacementClePrivee
,
""
,
cryptPaddingPKCS1
)
// encode l'utilisateur comme il faut
s
EncodeUtilisateurOK
is string
FOR i
=
1
_TO_
Length
(
s
Utilisateur
)
// Copie dans un buffer correct
s
EncodeUtilisateurOK
+
=
s
Utilisateur
[
[i]
] +
s
Decrypte
[
[
2
]
]
END
s
Utilisateur
=
s
EncodeUtilisateurOK
// On est a priori en mode iOS
biOS
=
True
END
// Supprime la clé temporaire
fDelete
(
s
EmplacementClePrivee
)
// Vérifie la signature des données (avec le nom de l'utilisateur)
s
SignatureCalculée
is string
=
s
Decrypte
+
s
Utilisateur
s
SignatureCalculée
=
BufferToHexa
(
HashString
(
HA_MD5_128
,
s
SignatureCalculée
)
)
// Il faut encoder comme il faut le message decrypté
IF
biOS
THEN
// Decode les données pour iOS
s
DecrypteOK
is string
FOR i
=
1
_TO_
Length
(
s
Decrypte
)
IF Modulo
(i,
2
) =
1
THEN
s
DecrypteOK
+
=
s
Decrypte
[
[i]
]
END
END
s
Decrypte
=
s
DecrypteOK
END
// Vérifie la signature identique, si ce n'est pas le cas, c'est que les données ou l'utilisateur a été modifié
IF
s
SignatureCalculée
=
s
Signature
THEN
// Tout est ok
RESULT
"Utilisateur : "
+
s
UtilisateurRecu
+
CR
+
"Données : "
+
s
Decrypte
END
// Pas la bonne signature, les données ont été modifiées
RESULT
""
Procedure
TestSecurise
(
)
// Vérification de l'utilisateur
s
UtilisateurAVerifier
is string
=
WebserviceReadHTTPHeader
(
"Utilisateur"
)
// <---------------- AQUI
s
Signature
is string
=
WebserviceReadHTTPHeader
(
"Signature"
)
s
Informations
is string
=
_VérifieAuthentification
(
WebserviceParameter
(
paramBuffer
)
,
s
UtilisateurAVerifier
,
s
Signature
)
IF
s
Informations
=
""
THEN
RESULT
"Échec de l'authentification, aucune action ne sera réalisée."
ELSE
RESULT
"Le message n'a pas été modifié, authentification réussie."
+
CR
+
"informations transmises au Webservice : "
+
CR
+
s
Informations
END
// Appel ici du code métier
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Signaler
0
0
BOLLER
#2
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 05 mars 2020 - 22:10
https://help.windev.com/en-US/…
https://help.windev.com/en-US/…
https://help.windev.com/en-US/…
https://help.windev.com/en-US/…
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Signaler
0
0
BOLLER
#3
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 06 mars 2020 - 12:40
//É assim que lê o Header de uma requisição REST
Usuario
is string
=
WebserviceReadHTTPHeader
(
"User"
)
Senha
is string
=
WebserviceReadHTTPHeader
(
"Password"
)
...
Usa dai o usuario dentro
DO
codigo lendo da base se bate com os dados informados
OK
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Signaler
0
0
Boller
#4
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2020 - 17:09
ATENÇÃO
Write Header
https://help.windev.com/en-US/…
https
:
/
/
help.windev.com
/
en
-
US
/
?
1000022788
&
name
=
WebserviceWriteHTTPHeader
Read Header
https://help.windev.com/en-US/…
https
:
/
/
help.windev.com
/
en
-
US
/
?
1000022787
&
name
=
WebserviceReadHTTPHeader
A funcao read e a funcao write é ideia igual do ini
simples assim:
o write coloca no teu webservice antes de publicar
e o read quando for consumir o webservice
//----
The read function and the write function is the same idea as the start
that simple:
write puts on your webservice before publishing
and read when consuming webservice
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Signaler
0
0
Boller
#5
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 06 juillet 2021 - 19:48
Passando para agradecer o
@
?
Ricardo
C
assolato
C
liente
Pgto
?
pela ajuda
,
estava precisando passar um
JSON
No
body da requisição e me ajudou
de
imediato
,
meu muito obrigado
!
JsonResponse
is JSON
=
""
s
JsonBody
is string
= {
"usuario"
:
"[%variavel_usuario%]"
,
"senha"
:
"[%variavel_senha%]"
}
MyRequest
is httpRequest
MyRequest
..
URL
=
"https://192.168.15.250/wsmobileautenticar.rule?sys=CIE"
MyRequest
..
Method
=
httpPost
MyRequest
..
Timeout
=
180
s
MyRequest
..
Content
=
s
JsonBody
MyResponse
is httpResponse
=
HTTPSend
(
MyRequest
)
JsonResponse
=
MyResponse
..
Content
Signaler
0
0
→ Revenir à WINDEV 25
WINDEV 25
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte