From fdf2b880cb46f738ca5dc1a5db161e2c45aa77d4 Mon Sep 17 00:00:00 2001 From: wenxuan70 <625559305@qq.com> Date: Mon, 22 Aug 2022 01:17:18 +0800 Subject: [PATCH] feat: click on the app card to log in automatically (#1049) --- web/src/auth/LoginPage.js | 8 ++++++-- web/src/basic/SingleCard.js | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/web/src/auth/LoginPage.js b/web/src/auth/LoginPage.js index a7a9c98b..b7dc99f2 100644 --- a/web/src/auth/LoginPage.js +++ b/web/src/auth/LoginPage.js @@ -504,7 +504,13 @@ class LoginPage extends React.Component { } renderSignedInBox() { + const params = new URLSearchParams(this.props.location.search); + const silentSignin = params.get("silentSignin"); if (this.props.account === undefined || this.props.account === null) { + if (window !== window.parent) { + const message = {tag: "Casdoor", type: "SilentSignin", data: "user-not-logged-in"}; + window.parent.postMessage(message, "*"); + } return null; } const application = this.getApplicationObj(); @@ -512,8 +518,6 @@ class LoginPage extends React.Component { return null; } - const params = new URLSearchParams(this.props.location.search); - const silentSignin = params.get("silentSignin"); if (silentSignin !== null) { if (window !== window.parent) { const message = {tag: "Casdoor", type: "SilentSignin", data: "signing-in"}; diff --git a/web/src/basic/SingleCard.js b/web/src/basic/SingleCard.js index 16bb0cdf..e45a7cf5 100644 --- a/web/src/basic/SingleCard.js +++ b/web/src/basic/SingleCard.js @@ -27,15 +27,23 @@ class SingleCard extends React.Component { }; } + wrappedAsSilentSigninLink(link) { + if (link.startsWith("http")) { + link += link.includes("?") ? "&silentSignin=1" : "?silentSignin=1"; + } + return link; + } + renderCardMobile(logo, link, title, desc, time, isSingle) { const gridStyle = { width: "100vw", textAlign: "center", cursor: "pointer", }; + const silentSigninLink = this.wrappedAsSilentSigninLink(link); return ( - Setting.goToLinkSoft(this, link)}> + Setting.goToLinkSoft(this, silentSigninLink)}> logo } - onClick={() => Setting.goToLinkSoft(this, link)} + onClick={() => Setting.goToLinkSoft(this, silentSigninLink)} style={isSingle ? {width: "320px"} : {width: "100%"}} >