2014-12-01 2 views
0

Я пытаюсь обменять код авторизации на токен и все время получаю «redirect_uri_mismatch». Теперь все URL, которые написаны в консоли идентичны REDIRECT_URL, что я посылаю в теле веб-запроса POST,Веб-приложение Google Oauth2 redirect_uri_mismatch

это код (VB) после получения ответа с кодом авторизовать:

 Dim strCode As String = HttpContext.Current.Request.QueryString("code") 
     Dim getTokenBody As String     
     getTokenBody = "code=" & HttpContext.Current.Server.UrlEncode(strCode) & _ 
           "&client_id=" & HttpContext.Current.Server.UrlEncode(AppStaticData.Config.GoogleClientID.Value) & _ 
           "&client_secret=" & HttpContext.Current.Server.UrlEncode(AppStaticData.Config.GoogleClientSecret.Value) & _ 
           "&redirect_uri=" & HttpContext.Current.Server.UrlEncode("http://localhost:53706/user/authenticate") & _ 
           "&scope=" & _ 
           "&grant_type=authorization_code" 
     Dim buffer As Byte() = Encoding.ASCII.GetBytes(getTokenBody) 
     Dim url = "https://accounts.google.com/o/oauth2/token" 
     Dim request As HttpWebRequest = WebRequest.Create(url) 
     request.Method = "POST" 
     request.ContentType = "application/x-www-form-urlencoded" 
     request.ContentLength = buffer.Length 

     Dim strm As Stream = request.GetRequestStream() 
     strm.Write(buffer, 0, buffer.Length) 
     strm.Close() 
     Try 
      Dim res As HttpWebResponse = request.GetResponse()    
     Catch ex As WebException 
      Dim a = ex.Response 
      Dim wr As Net.HttpWebResponse = DirectCast(a, Net.HttpWebResponse) 
      Dim s = New StreamReader(wr.GetResponseStream()).ReadToEnd    
     End Try 
+0

Является ли URL в надежном списке для вашего приложения? –

+0

@the_lotus да это – ishigh

ответ

0

Вам необходимо добавить свой uri возврата в список перенаправления uri в консоли разработчика для вашего приложения.

console img
(вот ссылка если снимок экрана не работает https://www.dropbox.com/s/lgjm1zgk8qeft00/console.png?dl=0)

В нижней части снимка экрана вы видите настройки редактирования. Нажмите это и добавьте свой uri в раздел AUTHORIZED REDIRECT URIS.

+0

Спасибо за ответ, все ссылки указаны! – ishigh

+1

Более конкретно, вы используете * same * redirect uri как при запросе первоначальной авторизации *, так и при обмене кодом? Использование разных URL-адресов для одного и того же гранта, даже если они объявлены в консоли разработчика, вызовет проблемы. –

+0

@SteveBazyl Вот и все! большое спасибо! – ishigh

Смежные вопросы