Desenvolvemos aplicativos sociais para dispositivos móveis. Todo aplicativo consome serviços da web da API RESTful. Quando implemento o login, normalmente armazeno o nome de usuário e a senha em algum lugar no dispositivo. Então eu os envio e, como resposta, tenho acesso ao meu perfil. Mas também sei que há outra maneira de fazer isso.
De alguma forma, gera um token com um algoritmo específico e envia-o em vez do nome de usuário e senha para obter acesso.
Como devo implementar isso? Devo enviar esse token juntamente com todas as outras solicitações além do login?
Respostas:
Existem várias maneiras de implementar a autenticação no contexto RESTful, e é mais seguro enviar apenas tokens em vez de login / senha: você pode facilmente tornar os tokens inválidos por tempo limite ou por outros critérios, e pedir ao usuário para se autenticar novamente. .
Por exemplo, solicitações REST de autenticação usando HMAC . Nesta abordagem, o cliente terá chaves públicas e secretas . Para todas as solicitações que requerem autenticação , você deve adicionar uma chave pública e usar uma chave secreta para calcular o hash da sua solicitação
Agora, o servidor pode identificar a solicitação pela chave pública e calcular o próprio requestHash . Se os dois hashes forem iguais, o usuário estará autorizado.
Aliás, você também precisa usar https para proteger a comunicação em uma rede de computadores - isso reduzirá drasticamente o número de possíveis problemas.
fonte
oAuth é o padrão para isso, mas há mais soluções.
Não tente implementar segurança, tokens etc. sozinho, pois esse é um tópico difícil e arriscado. Veja, por exemplo, aqui:
/programming/4574868/securing-my-rest-api-with-oauth- while-still-allowing-authentication-via-third-pa
fonte