[quote=aprendiz_ce][quote=Alexandre Saudate][quote=aprendiz_ce]Estou com algumas dúvidas de como autenticar meu Webservice RESTFul JSON (php) e gostaria da orientação dos colegas para esclarece-las.
Dúvidas:
-
Como devo proceder para autenticar o usuário (app client) no meu Webservice e só depois de autenticado retornar/devolver o JSON referente a sua requisição?
-
Fica errado ou não seria uma “boa prática” se eu tiver um “script” só pra autenticação que após a verificação do usuário o mesmo retorne “true” ou “false” para o usuário (app client) e daí em seguida em caso de “true” o usuário (app client) faria a nova requisição referente ao que o mesmo necessita?
-
No caso deu deixar a autentição do usuário no próprio “script” que retornar/devolve o JSON teria algum tipo que vantagem? Ou tanta faz deixando junto ou separado levando em conta a questão do desempennho?
Na app client só uso a class HTTPCLIENT e nada além disso. No Webservice também não uso nada além da própra class JSON do PHP.
Grato a todos e aguardo qualquer orientação.
[/quote]
Amigo, tem uma dúvida conceitual séria, aqui: a autenticação/autorização e a requisição de dados não são feitas de forma separada. Em geral, numa autenticação HTTP/HTTPS, você faz a requisição e envia os cabeçalhos de autenticação/autorização para essa requisição.
Então, na verdade, para todas as suas perguntas a resposta é a mesma: faça a requisição normalmente enviando os dados do usuário autorizado para tal.
[]'s[/quote]
Olá,
Compartilho do seu conceito plenamente, pois é como eu tenho visto por aí… e sem falar que no meu caso o aplicativo/webservice vai validar o DISPOSITIVO, depois o USUARIO/SENHA e para tão somente retorno o JSON. Nesse caso seriam 3 requests e que na minha “santa ignorância” seria de um certa for errado, isso levando em conta os recurso do dispositivo móvel e também a própria barda de internet móvel.
Então, como devo fazer para que em uma só requisição eu posso tratar essas três condições que necessito? Atualmente, caso o DISPOSITIO e o USUARIO/SENHA não seja validos o JSON é “null”, daí o usuário não é alertado o porque é o retorno foi “null”. Gostaria de informar tudo ao usuário, tipo: TIMEOUT, DISPOSITIVO NÃO AUTORIZADO, USUARIO INVALIDO, SENHA INVALIDA para que tudo ficasse bem claro para o usuário.
Grato pela sua valiosa atenção e aguardo pela sua comentário.
[/quote]
Neste caso, o ideal é o usar o padrão: toda requisição feita vai enviar como cabeçalho o dispositivo (o cabeçalho é o User-Agent). Ou seja, você ainda pode fazer a autorização baseado nisso. Se algum dado não bater, você retorna um código de status 401 ou 403 (respectivamente: problema de autenticação e de autorização), e no corpo da resposta você detalha com a mensagem dizendo se não foi autorizado pelo usuário, pelo dispositivo ou o quê.
Quanto ao User-Agent, vale lembrar que, caso esse cabeçalho não seja suficiente pra você, sempre é possível adicionar novos cabeçalhos customizados. O HTTP é suficientemente flexível para comportar esse tipo de situação.
[]'s