Evandro Andersen

Webservice Rest

6 posts in this topic

Olá,
gostaria de saber como recuperar o usuário e senha de autenticação em um webservice Rest

na imagem abaixo eu informei o usuário e senha, mas dentro do webservice não encontrei como recuperar essa informação para fazer a validação

Att,

Evandro Andersen

rest.png

1 person likes this

Share this post


Link to post
Share on other sites

Você quer dizer fazer o retorno de login e senha? Não entendi, pode explicar melhor? Por que iria querer retornar login e senha inseridos, ou mesmo os outros pares login/senha registrados?

Se for isso, você não poderia programar uma função no webservice para procurar um usuário e retornar seus dados? Me parece perigoso quanto à segurança do serviço. Talvez uma dica de senha fosse melhor (?)

Share this post


Link to post
Share on other sites

Boa tarde @Fábio Senji,
eu quero validar se a pessoa que esta acessando o webservice tem direito ou não de acessá-lo,
no tipo de autenticação "BASIC" você informa apenas usuário e senha,
eu gostaria de tratar essa informações no webservice, mas não sei como recuperá-las

1 person likes this

Share this post


Link to post
Share on other sites

Entendi.
Eu só sei fazer por headers. A maneira que vc está tentando deve ser mais indicada.

 

Mas caso queira saber como faço, aí vai:

1-Na passagem de uma solicitação hReq is rest Request, passo os headers assim, por ex.:

    hReq..Header["NomeDoHeader"] = "ValorDoHeader" //exemplo string

2-Na recepção do lado webservice eu leio os headers assim, por ex.:

    sNome is string = WebserviceReadHTTPHeader("NomeDoHeader") //exemplo string

Share this post


Link to post
Share on other sites

Respondendo minha própria pergunta de como recuperar o usuário e senha informados na chamada a um webservice rest no Windev

exemplo de chamada do lado client:
======================================
oRequest is httpRequest
oResponse is httpResponse
oRequest..URL = "http://localhost/vendedores/100"
oRequest..Method = httpGet
oRequest..User = "evandro"
oRequest..Password = "123"
oResponse = HTTPSend(oRequest)
 

exemplo de código lado server:
======================================
sCampo is string = WebserviceReadHTTPHeader("Authorization")
//o conteúdo de sCampo será:  "Basic ZXZhbmRybzoxMjM="
//o usuario e senha vem codificado em base64

sCampo = Decode(ExtractString(sCampo, 2, "Basic "),encodeBASE64)
//fiz um decode do conteúdo depois da palavra Basic
//agora o sCampo vale: "evandro:123"

//agora basta extrair o usuário e senha e fazer as validações necessárias
sUser         is string = ExtractString(sCampo, 1, ":")
sPassword     is string = ExtractString(sCampo, 2, ":")

Agradecimento especial ao @Fábio Senji que tentou ajudar!

Att,

Evandro Andersen
HDTec Software

2 people like this

Share this post


Link to post
Share on other sites

Muito interessante, obrigado por compartilhar!!

1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now