Como autenticar um aplicativo móvel sem nome de usuário e senha?

Estou criando um Webapp que usa o OpenId para autenticar usuários, como o Stackoverlfow. Também haverá um aplicativo para dispositivos móveis, por ex. Android ou iPhone. Esses aplicativos precisam autenticar ou fazer login de alguma forma, para acessar dados e atualizar itens que pertencem ao usuário. Como não há nome de usuário e senha que se possa fornecer para autenticar o dispositivo móvel, gostaria de saber como fazer isso.

Duas maneiras me vieram à mente:

Gere alguma chave no servidor que deve ser inserida no dispositivo. Essa chave será enviada como chave de autenticação quando o dispositivo móvel enviar ou solicitar dados e o usuário puder ser vinculado dessa maneira. Ao usar esta opção, a chave deve ser transportada de alguma forma para o usuário, para que ele não precise digitá-la. Talvez por email, SMS ou digitalizando um código de barras.

O aplicativo móvel usa o navegador ou mostra um painel da Web integrado que abre uma página especial do Webapp. Nesta página, o usuário precisa fazer login e, em seguida, permitir que o aplicativo móvel leia e grave dados.

Minha pergunta é: as duas formas são possíveis e economizam? Qual você prefere? Quais são os detalhes a serem observados? Existem outras maneiras de fazer isso? Se eu acertasse tudo, não seria possível usar o OpenId no dispositivo e vincular o celular e o aplicativo da web dessa maneira, certo?

questionAnswers(3)

yourAnswerToTheQuestion