O que é um URI de redirecionamento? como se aplica ao aplicativo iOS para OAuth2.0?

184

Programador iniciante aqui, por favor, perdoe a ignorância e as explicações serão muito boas :)

Tentei ler os tutoriais de um determinado serviço OAuth 2.0, mas não entendo esse URI de redirecionamento ... no meu contexto específico, digamos que estou tentando criar um aplicativo para iPhone que use o OAuth 2.0 para alguns serviços . Eu tenho um ID do aplicativo que foi gerado, mas preciso fornecer algum tipo de URI de redirecionamento para gerar a chave da API.

É um URL que eu deveria hospedar em algum lugar? Como o nome sugere, eu acho que o URL de redirecionamento deve "redirecionar" alguém para algum lugar. Meu único palpite é que é o URL para o qual um usuário é redirecionado depois de fazer login no serviço.

No entanto, mesmo que essa suposição esteja correta, não entendo outra coisa: como meu aplicativo pode ser aberto novamente depois de enviá-los ao navegador para o login do usuário?

David T.
fonte

Respostas:

194

Leia isso:

http://www.quora.com/OAuth-2-0/How-does-OAuth-2-0-work

ou uma explicação ainda mais simples, mas rápida:

http://agileanswer.blogspot.se/2012/08/oauth-20-for-my-ninth-grader.html

O URI de redirecionamento é o ponto de entrada de retorno de chamada do aplicativo. Pense em como o OAuth for Facebook funciona - depois que o usuário final aceita permissões, "algo" precisa ser chamado pelo Facebook para voltar ao aplicativo, e esse "algo" é o URI de redirecionamento. Além disso, o URI de redirecionamento deve ser diferente do ponto de entrada inicial do aplicativo.

O outro ponto importante desse quebra-cabeça é que você pode iniciar seu aplicativo a partir de um URL fornecido para uma visualização na web . Para fazer isso, simplesmente segui o guia aqui:

http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

e

http://inchoo.net/mobile-development/iphone-development/launching-application-via-url-scheme/

nota: nesses dois últimos links, "http: //" funciona na abertura do safari móvel, mas "tel: //" não funciona no simulador

no primeiro aplicativo, eu chamo

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"secondApp://"]];

No meu segundo aplicativo, registro "secondApp" (e NÃO "secondApp: //") como o nome do esquema de URL, com minha empresa como identificador de URL.

David T.
fonte
1
Então, você precisa configurar seu próprio site fornecido no redirect_uri, está correto?
Huggie
1
@ huggie no contexto de aplicativos iOS - não, felizmente, você não precisa de seu próprio site. você só precisa perceber que seu aplicativo iOS pode ser aberto a partir de um URL fornecido ao navegador da web. Leia: iosdevelopertips.com/cocoa/…
David T.
1
@Nazerke provavelmente adiciona ": //" para você já. assim você só precisa regime nome
David T.
1
alguém pls corrigir esta resposta - architecture-soa-bpm-eai.blogspot.com.br/2012/08/... não existe mais
Leo
2
Olá, @DavidT. Ótima resposta. Eles apenas preocupam, e esperam que você possa me salvar, é como configurar esquemas para URIs que são forçados a usar http://, como [YouTube, Instagram, LinkedIn]? Eu tentei registrar, por exemplo, http://localhost/oauth2callbackredirecionamento, eo esquema de http, localhost, ou oauth2callback mas não deles trabalham
Tal Zion
9

uri redirecionado é o local para o qual o usuário será redirecionado após o login com sucesso no seu aplicativo. por exemplo, para obter o token de acesso para seu aplicativo no facebook, você precisa subtrair o URL redirecionado, que não é apenas o domínio do aplicativo que você fornece ao criar seu aplicativo do facebook.

Dhirender Tyagi
fonte
2

Se você estiver usando o SDK do Facebook, não precisará se preocupar em inserir nada para redirecionar o URI na página de gerenciamento de aplicativos do facebook. Basta configurar um esquema de URL para o seu aplicativo iOS. O esquema de URL do seu aplicativo deve ser um valor "fbxxxxxxxxxxx", em que xxxxxxxxxxx é o ID do seu aplicativo, conforme identificado no facebook. Para configurar o esquema de URL para o seu aplicativo iOS, vá para a guia Informações das configurações do seu aplicativo e adicione Tipo de URL.

Kunal Khanna
fonte