From 95f2a3b31181288c4fd1a9d37b0da8f5408ec10d Mon Sep 17 00:00:00 2001 From: Gucheng Wang Date: Sat, 18 Dec 2021 16:16:34 +0800 Subject: [PATCH] Add TokenFormat to application. --- object/application.go | 1 + object/token_jwt.go | 4 ++++ web/src/ApplicationEditPage.js | 13 +++++++++++++ web/src/ApplicationListPage.js | 1 + 4 files changed, 19 insertions(+) diff --git a/object/application.go b/object/application.go index 3be7eca8..4f2659f3 100644 --- a/object/application.go +++ b/object/application.go @@ -39,6 +39,7 @@ type Application struct { ClientId string `xorm:"varchar(100)" json:"clientId"` ClientSecret string `xorm:"varchar(100)" json:"clientSecret"` RedirectUris []string `xorm:"varchar(1000)" json:"redirectUris"` + TokenFormat string `xorm:"varchar(100)" json:"tokenFormat"` ExpireInHours int `json:"expireInHours"` SignupUrl string `xorm:"varchar(200)" json:"signupUrl"` SigninUrl string `xorm:"varchar(200)" json:"signinUrl"` diff --git a/object/token_jwt.go b/object/token_jwt.go index f3c26a9c..9e7035b7 100644 --- a/object/token_jwt.go +++ b/object/token_jwt.go @@ -55,6 +55,10 @@ func generateJwtToken(application *Application, user *User, nonce string) (strin }, } + if application.TokenFormat == "JWT-Empty" { + claims.User = User{} + } + token := jwt.NewWithClaims(jwt.SigningMethodRS256, claims) // Use "token_jwt_key.key" as RSA private key diff --git a/web/src/ApplicationEditPage.js b/web/src/ApplicationEditPage.js index 1ff07f65..7534a985 100644 --- a/web/src/ApplicationEditPage.js +++ b/web/src/ApplicationEditPage.js @@ -238,6 +238,19 @@ class ApplicationEditPage extends React.Component { /> + + + {Setting.getLabel(i18next.t("application:Token format"), i18next.t("general:Token format - Tooltip"))} : + + + + + {Setting.getLabel(i18next.t("general:Token expire"), i18next.t("general:Token expire - Tooltip"))} : diff --git a/web/src/ApplicationListPage.js b/web/src/ApplicationListPage.js index 55d09299..447d318f 100644 --- a/web/src/ApplicationListPage.js +++ b/web/src/ApplicationListPage.js @@ -70,6 +70,7 @@ class ApplicationListPage extends React.Component { {name: "Agreement", visible: true, required: true, rule: "None"}, ], redirectUris: ["http://localhost:9000/callback"], + tokenFormat: "JWT", expireInHours: 24 * 7, } }