如何将 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),这应该有效。
我错过了什么吗?谢谢你。
那是我试过的:
- 显示小部件的 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(...);
打开浏览器并显示 Javascript 浏览器控制台
在浏览器中进入插件页面url:
http://127.0.0.1:8888/signin.html?signInSuccessUrl=127.0.0.1%3A8888%2Fgwt%2Fservlet%2Fgitkit%2Fsignedin%0A&o=dynamic
继续登录...
这不会重定向到 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”时它确实有效。
我正在尝试将 signInSuccessUrl 参数作为 URL 参数动态传递到小部件页面。可惜没有成功。
根据 gitkit 论坛 (https://groups.google.com/d/msg/google-identity-toolkit/grF6C4CByEk/Dz4l2P-mTOwJ),这应该有效。
我错过了什么吗?谢谢你。
那是我试过的:
- 显示小部件的 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(...);
打开浏览器并显示 Javascript 浏览器控制台
在浏览器中进入插件页面url: http://127.0.0.1:8888/signin.html?signInSuccessUrl=127.0.0.1%3A8888%2Fgwt%2Fservlet%2Fgitkit%2Fsignedin%0A&o=dynamic
继续登录...
这不会重定向到 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”时它确实有效。