2014-01-05 5 views
4

Я следил за google oauth tutorial, чтобы реализовать вход для входа в систему для моего приложения.Интеграция с Google OpenID для входа

Я использовал https://www.google.com/accounts/o8/id, но некоторые, как веб-просмотр, не показывающий страницу входа в систему Google в эмуляторе. Появляется только пустая страница.

Вот мой соответствующий фрагмент кода. Любые входы?

Intent intent = new Intent(this, WebViewActivity.class); 
       intent.setData(Uri.parse("https://www.google.com/accounts/o8/ud")); 
       startActivityForResult(intent, 0); 

WebViewActivity Код:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Allow the title bar to show loading progress. 
     requestWindowFeature(Window.FEATURE_PROGRESS); 

     WebView webview = new WebView(this); 
     setContentView(webview); 

     // Load the page 
     Intent intent = getIntent(); 
     if (intent.getData() != null) { 
      webview.loadUrl(intent.getDataString()); 
     } 
................ 
} 

Мой веб-приложение с помощью OpenId, так OAuth это не вариант для меня.

+0

В вашем 'Ури. parse' у вас есть 'ud' вместо' id'. Это проблема? – Houseman

+0

@Houseman: Я пробовал оба, оба не работали.Я думаю, что еще один шаг отсутствует (обнаружение), чтобы получить конечную точку (URL-адрес сервера). Но я не мог найти никакого примера, который делает открытие. – kosa

+1

Для записи Google [больше не поддерживает OpenID 2.0 и предлагает перейти на OpenID Connect] (https://developers.google.com/identity/protocols/OpenID2Migration). –

ответ

1

Я делаю то же самое, что указано в образце.

Когда я попытался открытия URL вы упомянули https://www.google.com/accounts/o8/id

Я получаю следующий экран.

enter image description here

Когда я попробовал URL https://www.google.com/accounts/o8/ud он перенаправляет на https://accounts.google.com/o/openid2/auth

и дают следующий экран в моем WebView

enter image description here

Я думаю, что URL должен иметь эти параметры по с ним

https://accounts.google.com/o/oauth2/auth? client_id = 424911365001.apps.googleusercontent.com & response_type = Код & Объем =% 20email OpenID & redirect_uri = https://oa2cb.example.com/& состояние = security_token% 3D138r5719ru3e1% 26url% 3Dhttps: //oa2cb.example.com/myHome & login_hint [email protected] & openid.realm = example.com & HD = example.com

как упомянуто здесь https://developers.google.com/accounts/docs/OAuth2Login#sendauthrequest

Экран занимает некоторое время, чтобы появиться, поэтому, пожалуйста, подождите некоторое время, чтобы увидеть выходы, которые я опубликовал. Убедитесь, что вы не подключены к какой-либо ограниченной сети Wi-Fi при попытке. Лучше попробовать с любой сетью 2g или 3g.

Обновлено

Проверьте этот раз для Open Id

https://developers.google.com/accounts/docs/OpenID#settingup (Проверьте 3-ю по запросу)

О конечной точке

https://developers.google.com/accounts/docs/OpenID#endpoint

+0

Спасибо за ваши ответы! Я думаю, что client_id не является статичным, и нам нужно его открыть. Как вы получили этот URL? Перед отправкой запроса на авторизацию нам нужно открыть (AFAIK), не так ли? – kosa

+0

Какой URL-адрес вы говорите? один из https: // accounts.google.com/o/openid2/auth автоматически переадресовывает, когда я пытался загрузить 'https: // www.google.com/accounts/o8/ud' в webview. Идентификатор клиента. Я думаю, вы можете получить доступ с консоли Google API, зарегистрировав приложение. – pyus13

+0

Да, я говорю о clientid, Нужно ли регистрировать приложение? Позвольте мне проверить это сегодня вечером. Благодаря! – kosa