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, } }