diff --git a/object/application.go b/object/application.go
index aa4e8f75..539a9e6c 100644
--- a/object/application.go
+++ b/object/application.go
@@ -31,7 +31,7 @@ type Application struct {
Organization string `xorm:"varchar(100)" json:"organization"`
EnablePassword bool `json:"enablePassword"`
EnableSignUp bool `json:"enableSignUp"`
- Providers []*ProviderItem `xorm:"varchar(1000)" json:"providers"`
+ Providers []*ProviderItem `xorm:"varchar(10000)" json:"providers"`
OrganizationObj *Organization `xorm:"-" json:"organizationObj"`
ClientId string `xorm:"varchar(100)" json:"clientId"`
@@ -39,6 +39,7 @@ type Application struct {
RedirectUris []string `xorm:"varchar(1000)" json:"redirectUris"`
ExpireInHours int `json:"expireInHours"`
SignupUrl string `xorm:"varchar(100)" json:"signupUrl"`
+ SigninUrl string `xorm:"varchar(100)" json:"signinUrl"`
ForgetUrl string `xorm:"varchar(100)" json:"forgetUrl"`
AffiliationUrl string `xorm:"varchar(100)" json:"affiliationUrl"`
}
diff --git a/web/src/ApplicationEditPage.js b/web/src/ApplicationEditPage.js
index 5447c9bd..06fdc039 100644
--- a/web/src/ApplicationEditPage.js
+++ b/web/src/ApplicationEditPage.js
@@ -248,6 +248,16 @@ class ApplicationEditPage extends React.Component {
}} />
+
+
+ {i18next.t("general:Signin URL")}:
+
+
+ } value={this.state.application.signinUrl} onChange={e => {
+ this.updateApplicationField('signinUrl', e.target.value);
+ }} />
+
+
{i18next.t("general:Forget URL")}:
diff --git a/web/src/Setting.js b/web/src/Setting.js
index d20116ac..9c2b7d32 100644
--- a/web/src/Setting.js
+++ b/web/src/Setting.js
@@ -265,7 +265,11 @@ export function goToLogin(ths, application) {
if (authConfig.appName === application.name) {
goToLinkSoft(ths, "/login");
} else {
- goToLink(`${application.homepageUrl}/login`);
+ if (application.signinUrl === "") {
+ goToLink(`${application.homepageUrl}/login`);
+ } else {
+ goToLink(application.signinUrl);
+ }
}
}