如何将 signInSuccessUrl 动态传递给 gitkit 身份工具包的小部件

How to pass signInSuccessUrl dynamically to gitkit identity toolkit's widget

我正在尝试将 signInSuccessUrl 参数作为 URL 参数动态传递到小部件页面。可惜没有成功。

根据 gitkit 论坛 (https://groups.google.com/d/msg/google-identity-toolkit/grF6C4CByEk/Dz4l2P-mTOwJ),这应该有效。

我错过了什么吗?谢谢你。

那是我试过的:

  1. 显示小部件的 signin.html 页面配置如下:

JS 配置:

var config = {
apiKey: '...',
idps: ["googleplus"], 
//signInSuccessUrl:NOT SPECIFIED CAUSE WE PASS IT VIA URL,
oobActionUrl: '//127.0.0.1:8888/gwt/servlet/gitkit/email',
siteName: 'SN',
};

window.google.identitytoolkit.start(...);
  1. 打开浏览器并显示 Javascript 浏览器控制台

  2. 在浏览器中进入插件页面url: http://127.0.0.1:8888/signin.html?signInSuccessUrl=127.0.0.1%3A8888%2Fgwt%2Fservlet%2Fgitkit%2Fsignedin%0A&o=dynamic

  3. 继续登录...

这不会重定向到 signInSuccessUrl 而是产生错误:

未捕获错误:需要配置 signInSuccessUrl.Si @ gitkit.js:217Ik @ gitkit.js:248(匿名函数)@ gitkit.js :257(匿名函数)@gitkit.js:152(匿名函数)@gitkit.js:213Fc@gitkit.js:38h.dispatchEvent@gitkit.js:36zi@gitkit.js:210U.onReadyStateChangeEntryPoint_@gitkit.js:208U.onReadyStateChange_@gitkit.js:208

注意:如果我在小部件配置中设置 signInSuccessUrl 参数,例如: signInSuccessUrl:"//127.0.0.1:8888/gwt/servlet/gitkit/signedin?o=硬编码",

它会起作用,但不会使用 URL 中提供的 signInSuccessUrl,但是硬编码的,即本例中的 'o' 参数不会被覆盖。

小部件配置中的 signInSuccessUrl 是必填字段。你总是必须提供它。小部件 url 中的 signInSuccessUrl 参数(如果提供)将覆盖配置值。这是有道理的,因为 signInSuccessUrl 查询参数是可选的,可能并不总是在 url 中提供。尝试在配置中提供它,然后在 url 中传递它。它应该按照您希望的方式工作。

它不起作用的原因与在 oobActionUrl 中使用开放方案有关 '//127.0.0.1:8888/gwt/servlet/gitkit/email'

当使用“http://127.0.0.1:8888/gwt/servlet/gitkit/email”时它确实有效。