Asp.net 为什么谷歌登录重定向回带有标签的站点-可以避免吗

Asp.net 为什么谷歌登录重定向回带有标签的站点-可以避免吗,asp.net,oauth,google-plus,google-oauth,google-login,Asp.net,Oauth,Google Plus,Google Oauth,Google Login,我没有找到任何相关的答案,所以我必须问:) 我实现了google plus登录到我的网站。通过一些变通方法,它可以正常工作,但… 当我从google重定向回我的站点时,我返回到以下URL: http://localhost/mysite/west/Default.aspx#state=/profile&access_token=ya29.qQDrtcVtgOEbS86Bg10puFG3dksJz74BlrEGulHldlJW2o5qQ6g7ilF17zQsm8iMLG0C82PQyp2Z

我没有找到任何相关的答案,所以我必须问:)
我实现了google plus登录到我的网站。通过一些变通方法,它可以正常工作,但…
当我从google重定向回我的站点时,我返回到以下URL:

http://localhost/mysite/west/Default.aspx#state=/profile&access_token=ya29.qQDrtcVtgOEbS86Bg10puFG3dksJz74BlrEGulHldlJW2o5qQ6g7ilF17zQsm8iMLG0C82PQyp2Z-g&token_type=Bearer&expires_in=3600
由于这里的这个参数
#state=/profile&
我首先必须在加载时读取javascript中的URL,
删除此部分以修复URL,然后执行以下操作:

var url = "Default.aspx?" + queryString;
                window.location = url; 
然后我可以继续正常地读取代码中的查询字符串。
我不喜欢这样,因为当我这样做的时候,我会在页面上做两次回发,如果可能的话,我想避免这种情况。
此重定向url必须包含此内容还是可以避免此内容

重定向到谷歌:

string url = "https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&state=%2Fprofile&redirect_uri="+this.Return_url+"&response_type=token&client_id=" + this.Client_ID;

        Response.Redirect(url);
当我回到我的站点时:

if (this.Request.QueryString["access_token"] != null)
            {
                String URI = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + Request.QueryString["access_token"].ToString();

                WebClient webClient = new WebClient();
                Stream stream = webClient.OpenRead(URI);

response\u type=token
更改为
response\u type=code
。然后,回调URL将有一个
code
查询参数,该参数可以在服务器端访问,而不是片段。然后,您必须实现将代码交换为访问令牌。

在您的Google登录配置中,您为返回URL指定了什么?Http://localhost/mysite/west/Default.aspx您是否使用oAuth或oAuth2?oAuth2。我已经用代码示例更新了我的问题。请检查一下。您发布的第一个URL是ID令牌。必须验证ID令牌。