diff --git a/modules/convert/user.go b/modules/convert/user.go
index 2b07d21838..093994856c 100644
--- a/modules/convert/user.go
+++ b/modules/convert/user.go
@@ -73,6 +73,7 @@ func toUser(user *user_model.User, signed, authed bool) *api.User {
 	// only site admin will get these information and possibly user himself
 	if authed {
 		result.IsAdmin = user.IsAdmin
+		result.LoginName = user.LoginName
 		result.LastLogin = user.LastLoginUnix.AsTime()
 		result.Language = user.Language
 		result.IsActive = user.IsActive
diff --git a/modules/structs/user.go b/modules/structs/user.go
index 431e230fac..81516894a5 100644
--- a/modules/structs/user.go
+++ b/modules/structs/user.go
@@ -17,6 +17,9 @@ type User struct {
 	ID int64 `json:"id"`
 	// the user's username
 	UserName string `json:"login"`
+	// the user's authentication sign-in name.
+	// default: empty
+	LoginName string `json:"login_name"`
 	// the user's full name
 	FullName string `json:"full_name"`
 	// swagger:strfmt email
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 4b24cb729d..a3bb904845 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -18487,6 +18487,12 @@
           "type": "string",
           "x-go-name": "UserName"
         },
+        "login_name": {
+          "description": "the user's authentication sign-in name.",
+          "type": "string",
+          "default": "empty",
+          "x-go-name": "LoginName"
+        },
         "prohibit_login": {
           "description": "Is user login prohibited",
           "type": "boolean",