Javascript Spring Social-如何重定向到原始URL或通过带有重新加载的弹出窗口/Iframe进行身份验证
我有一个web应用程序,它使用SpringSecurity和SpringSocialIntegration。我已在应用程序的菜单上放置了登录按钮(form post),可从任何路径/网页访问该按钮。我可以通过在我的网页上发布/signin/{provider}来登录,该网页重定向到谷歌的登录页面进行身份验证,并且在成功身份验证后重定向回一个“配置的URL”。我希望这个URL是动态的,这样用户会被重定向回原始URL,在那里用户单击了使用谷歌登录按钮 我有以下选择:Javascript Spring Social-如何重定向到原始URL或通过带有重新加载的弹出窗口/Iframe进行身份验证,javascript,spring,jakarta-ee,oauth-2.0,spring-social,Javascript,Spring,Jakarta Ee,Oauth 2.0,Spring Social,我有一个web应用程序,它使用SpringSecurity和SpringSocialIntegration。我已在应用程序的菜单上放置了登录按钮(form post),可从任何路径/网页访问该按钮。我可以通过在我的网页上发布/signin/{provider}来登录,该网页重定向到谷歌的登录页面进行身份验证,并且在成功身份验证后重定向回一个“配置的URL”。我希望这个URL是动态的,这样用户会被重定向回原始URL,在那里用户单击了使用谷歌登录按钮 我有以下选择: 用于返回要重定向到的URL。我们
这是一个电子商务应用程序,因此希望在安全性和用户约束(如阻塞的POPU)方面争取一些最佳实践。最终使用问题中提到的第二种方法实现了它。不要直接点击“使用谷歌登录”按钮进行登录表单发布(signin/{providerId}),而是打开一个弹出窗口(子窗口),如下所示:
<button type="submit" onClick=
"window.open('/signin?formId=googleForm','Ratting','width=550,height=400,left=150,top=200,toolbar=0,status=0,');" class="googlelogin" style="border-width: 0px;">
</button>
父窗口应具有子窗口发布的消息的侦听器。比如:
(function(){
if (opener) {
opener.postMessage("reload", '*');
window.close();
}
else {
window.location.assign('/');
}
}());
function listener(event){
if (event.data === "reload")
document.location.reload();
}
if (window.addEventListener){
addEventListener("message", listener, false)
} else {
attachEvent("onmessage", listener)
}
希望它能帮助一些人找到这样一个非常琐碎的用例的解决方案。最终使用了问题中提到的第二种方法。不要直接点击“使用谷歌登录”按钮进行登录表单发布(signin/{providerId}),而是打开一个弹出窗口(子窗口),如下所示:
<button type="submit" onClick=
"window.open('/signin?formId=googleForm','Ratting','width=550,height=400,left=150,top=200,toolbar=0,status=0,');" class="googlelogin" style="border-width: 0px;">
</button>
父窗口应具有子窗口发布的消息的侦听器。比如:
(function(){
if (opener) {
opener.postMessage("reload", '*');
window.close();
}
else {
window.location.assign('/');
}
}());
function listener(event){
if (event.data === "reload")
document.location.reload();
}
if (window.addEventListener){
addEventListener("message", listener, false)
} else {
attachEvent("onmessage", listener)
}
希望它能帮助一些人找到这样一个非常琐碎的用例的解决方案