#asp.net #.net #vb.net #google-oauth #token
Вопрос:
проблема: результат var имеет access_token и идентификатор токена. как я могу использовать это для получения электронной почты пользователя
здесь я использую google oauth для перевода пользователя на веб-сайт Google для входа в свою учетную запись с помощью электронной почты и пароля
Dim urlOAuth As String = "https://accounts.google.com/o/oauth2/auth" Dim urlGetToken As String = "https://accounts.google.com/o/oauth2/token" ' token url to get user information. need help to get user name or email here Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If String.IsNullOrEmpty(Request.QueryString("id")) = False Then Dim geturlCode As String = Request.QueryString("code") Dim WebRequest1 As HttpWebRequest = CType(WebRequest.Create(urlGetToken), HttpWebRequest) Dim Parameter As String = "code=" amp; geturlCode amp; "amp;client_id=" clientID amp; "amp;client_secret=" clientSecret amp; "amp;redirect_uri=" redirecturi amp; "amp;grant_type=authorization_code" 'Dim byteArray As Byte() = Encoding.UTF8.GetBytes(Parameter) WebRequest1.Method = "POST" WebRequest1.ContentType = "application/x-www-form-urlencoded" ' WebRequest1.ContentLength = byteArray.Length Dim utfenc As UTF8Encoding = New UTF8Encoding() Dim bytes As Byte() = utfenc.GetBytes(Parameter) Dim os As Stream = Nothing Try WebRequest1.ContentLength = bytes.Length os = WebRequest1.GetRequestStream() os.Write(bytes, 0, bytes.Length) Catch End Try Dim WebResponse As HttpWebResponse = CType(WebRequest1.GetResponse(), HttpWebResponse) Dim responseStream As Stream = WebResponse.GetResponseStream() Dim responseStreamReader As StreamReader = New StreamReader(responseStream) ' access_token inside result Dim result = responseStreamReader.ReadToEnd() End If End Sub 'use oauth url so user can login in to there google account Public Sub LoginGoogleB_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginGoogleB.Click Dim Uri As String = urlOAuth amp; "?approval_prompt=force" amp; "amp;scope=openid email" amp; "amp;response_type=code" amp; "amp;access_type=offline" amp; "amp;client_id=" amp; clientID amp; "amp;redirect_uri=" amp; redirecturi Response.Redirect(Uri) End Sub
Комментарии:
1. Я бы предположил, что пользователь уже предоставил всю эту информацию на странице регистрации, и она будет храниться в базе данных.
2. Когда пользователь входит в систему и отправляет данные по URL-адресу, как вы сказали «код», это очень важно. Затем вы будете использовать этот » код » для вызова api Google, который вернет нужные вам данные. Не уверен, какая конечная точка API будет такой, как если бы она не делала этого в течение длительного времени, но обычно что-то вроде «userInfo».
3. @Мэри, базы данных нет. пользователь входит в систему с помощью google oauth
4. @Alik, o я вижу, поэтому я изучу, как использовать URL-код для получения информации о пользователе
5. было бы очень полезно, если бы кто-нибудь мог предоставить мне ссылку на то, как использовать эту переменную » код » для получения информации о пользователе в vb.net