Google Identity Toolkit 忽略 signInSuccessUrl 的哈希 (#) 片段
Google Identity Toolkit ignores hash (#) fragment of signInSuccessUrl
我在我的 Web 应用程序中使用 Google Identity Toolkit 进行身份验证(Java 的 GAE)。当用户尝试访问 URL http://www.example.com/home#xyz
时,我的应用程序将用户重定向到身份验证页面,在我的例子中是 http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=/home#xyz
.
但是,身份验证成功后,身份工具包会将用户重定向到 http://www.example.com/home
而不是 http://www.example.com/home#xyz
。
这是身份工具包的问题还是我遗漏了什么?是否有解决方法可以在重定向后保留哈希片段?
这是完整的用例。
用户转到 URL http://www.example.com/home#xyz
。如果用户未登录,home
页面(即 JSP 使用 scriptlet 将用户重定向到 http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=/home
。
JSP scriptlet 无法访问散列片段 #xyz
(因为它在服务器中是 运行)但浏览器会自动在末尾附加 #xyz
我在地址栏中看到 http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=/home#xyz
。
但是,登录后,用户被重定向到 http://www.example.com/home
。我需要访问我的 JSP scriptlet 中的散列片段,我不确定该怎么做,以便我可以使用散列片段对 URI 进行编码,如下面 bojeil 的回复中所述。
您的小部件 url 应该是:
'http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=' + encodeURIComponent('/home#xyz')
哈希部分被视为 url 本身和此处 signInSuccessUrl 查询值的一部分。
我在我的 Web 应用程序中使用 Google Identity Toolkit 进行身份验证(Java 的 GAE)。当用户尝试访问 URL http://www.example.com/home#xyz
时,我的应用程序将用户重定向到身份验证页面,在我的例子中是 http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=/home#xyz
.
但是,身份验证成功后,身份工具包会将用户重定向到 http://www.example.com/home
而不是 http://www.example.com/home#xyz
。
这是身份工具包的问题还是我遗漏了什么?是否有解决方法可以在重定向后保留哈希片段?
这是完整的用例。
用户转到 URL http://www.example.com/home#xyz
。如果用户未登录,home
页面(即 JSP 使用 scriptlet 将用户重定向到 http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=/home
。
JSP scriptlet 无法访问散列片段 #xyz
(因为它在服务器中是 运行)但浏览器会自动在末尾附加 #xyz
我在地址栏中看到 http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=/home#xyz
。
但是,登录后,用户被重定向到 http://www.example.com/home
。我需要访问我的 JSP scriptlet 中的散列片段,我不确定该怎么做,以便我可以使用散列片段对 URI 进行编码,如下面 bojeil 的回复中所述。
您的小部件 url 应该是:
'http://www.example.com/oauth2callback?mode=select&signInSuccessUrl=' + encodeURIComponent('/home#xyz')
哈希部分被视为 url 本身和此处 signInSuccessUrl 查询值的一部分。