重定向URI未正确重定向

时间:2015-06-04 20:47:49

标签: google-openid

我已在帐户设置中指定了我的重定向URI,但我不确定在我的代码中将其指定的位置。

我正在使用“使用google登录”按钮,我可以登录,但是当我使用fiddler时,我总是看到的redirect_uri与我发布的URI相同。我想要一个不同的。

我确信这与我没有在正确的地方寻找指令有关,因为我是OpenID connect的新手。如果URI与我在已注册的重定向URI中列出的redirect_uri匹配,我认为设置元标记会起作用。

这是我的HTML页面:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script src="https://apis.google.com/js/platform.js" async defer></script>
    <meta name="google-signin-client_id" content="xxxxxxxxxxxxxx-yyyyyyyyyyyyyyyyyy.apps.googleusercontent.com">
    <meta name="google-signin-redirect_uri" content="https://www.apple.com">

</head>
<body>
    <form id="form1" runat="server">

    <div>

    </div>
    <div class="g-signin2" data-onsuccess="onSignIn"></div>
    <script>
        function onSignIn(googleUser) {
            // Useful data for your client-side scripts:
            var profile = googleUser.getBasicProfile();
            console.log("ID: " + profile.getId()); // Don't send this directly to your server!
            console.log("Name: " + profile.getName());
            console.log("Image URL: " + profile.getImageUrl());
            console.log("Email: " + profile.getEmail());

            // The ID token you need to pass to your backend:
            var id_token = googleUser.getAuthResponse().id_token;
            console.log("ID Token: " + id_token);
        };
    </script>

    </form>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

要使用redirect_uri,您必须将其声明为g-signin2数据参数并显式请求accesstype = offline。

<div class="g-signin2" 
   data-onsuccess="onSignIn"
   data-scope="https://www.googleapis.com/auth/plus.login"
   data-accesstype="offline"
   data-redirecturi="https://www.example.com/redirect_uri"></div>

这样访问代码将被发送到请求的uri。 Detailed docs for server side flow