From f509530d0626d7d093edeb9ca4017a42c83bc102 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Tue, 27 Oct 2020 23:08:38 +0800 Subject: [PATCH] show user nickname in settings page --- pkg/api/authorizations.go | 6 ++++++ pkg/api/users.go | 10 +++++++++- pkg/models/auth_response.go | 6 ++++-- src/lib/userstate.js | 32 +++++++++++++++++++++++++++++--- src/locales/en.js | 3 +++ src/locales/zh_Hans.js | 3 +++ src/views/mobile/Login.vue | 4 ++-- src/views/mobile/Settings.vue | 12 ++++++++++-- src/views/mobile/Signup.vue | 2 +- 9 files changed, 67 insertions(+), 11 deletions(-) diff --git a/pkg/api/authorizations.go b/pkg/api/authorizations.go index e6989e9e..92825580 100644 --- a/pkg/api/authorizations.go +++ b/pkg/api/authorizations.go @@ -77,6 +77,8 @@ func (a *AuthorizationsApi) AuthorizeHandler(c *core.Context) (interface{}, *err authResp := &models.AuthResponse{ Token : token, + Username: user.Username, + Nickname: user.Nickname, Need2FA: twoFactorEnable, } @@ -132,6 +134,8 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeHandler(c *core.Context) (interfac authResp := &models.AuthResponse{ Token : token, + Username: user.Username, + Nickname: user.Nickname, Need2FA: false, } @@ -193,6 +197,8 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeByRecoveryCodeHandler(c *core.Cont authResp := &models.AuthResponse{ Token : token, + Username: user.Username, + Nickname: user.Nickname, Need2FA: false, } diff --git a/pkg/api/users.go b/pkg/api/users.go index 1059aa66..2c06495b 100644 --- a/pkg/api/users.go +++ b/pkg/api/users.go @@ -63,7 +63,15 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Erro c.SetTokenClaims(claims) log.InfofWithRequestId(c, "[users.UserRegisterHandler] user \"uid:%d\" has logined, token will be expired at %d", user.Uid, claims.ExpiresAt) - return token, nil + + authResp := &models.AuthResponse{ + Token : token, + Username: user.Username, + Nickname: user.Nickname, + Need2FA: false, + } + + return authResp, nil } func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error) { diff --git a/pkg/models/auth_response.go b/pkg/models/auth_response.go index 61382203..30bc9517 100644 --- a/pkg/models/auth_response.go +++ b/pkg/models/auth_response.go @@ -1,6 +1,8 @@ package models type AuthResponse struct { - Token string `json:"token"` - Need2FA bool `json:"need2FA"` + Token string `json:"token"` + Username string `json:"username,omitempty"` + Nickname string `json:"nickname,omitempty"` + Need2FA bool `json:"need2FA"` } diff --git a/src/lib/userstate.js b/src/lib/userstate.js index 2cfcf3ae..24c0c615 100644 --- a/src/lib/userstate.js +++ b/src/lib/userstate.js @@ -1,23 +1,49 @@ const tokenLocalStorageKey = 'lab_user_token'; +const userNameLocalStorageKey = 'lab_user_name'; +const userNickNameLocalStorageKey = 'lab_user_nickname'; function getToken() { return localStorage.getItem(tokenLocalStorageKey); } +function getUserName() { + return localStorage.getItem(userNameLocalStorageKey); +} + +function getUserNickName() { + return localStorage.getItem(userNickNameLocalStorageKey); +} + function isUserLogined() { return !!getToken(); } -function updateToken(token) { - return localStorage.setItem(tokenLocalStorageKey, token); +function updateToken(item) { + if (typeof(item) === 'string') { + return localStorage.setItem(tokenLocalStorageKey, item); + } else if (typeof(item) === 'object') { + localStorage.setItem(tokenLocalStorageKey, item.token); + localStorage.setItem(userNameLocalStorageKey, item.username); + localStorage.setItem(userNickNameLocalStorageKey, item.nickname); + + return true; + } else { + return false; + } } function clearToken() { - return localStorage.removeItem(tokenLocalStorageKey); + localStorage.removeItem(tokenLocalStorageKey); + localStorage.removeItem(userNameLocalStorageKey); + localStorage.removeItem(userNickNameLocalStorageKey); + + return true; } export default { getToken, + getUserName, + getUserNickName, isUserLogined, updateToken, clearToken diff --git a/src/locales/en.js b/src/locales/en.js index ea9e8fca..849e9dd5 100644 --- a/src/locales/en.js +++ b/src/locales/en.js @@ -55,6 +55,8 @@ export default { 'OK': 'OK', 'Cancel': 'Cancel', 'Done': 'Done', + 'User': 'User', + 'Application': 'Application', 'Home': 'Home', 'Journals': 'Journals', 'Accounts': 'Accounts', @@ -90,6 +92,7 @@ export default { 'Use a backup code': 'Use a backup code', 'Use a passcode': 'Use a passcode', 'Sign Up': 'Sign Up', + 'User Profile': 'User Profile', 'Language': 'Language', 'You have been successfully registered': 'You have been successfully registered', 'Unable to sign up': 'Unable to sign up', diff --git a/src/locales/zh_Hans.js b/src/locales/zh_Hans.js index 4ad9518b..5eb3c909 100644 --- a/src/locales/zh_Hans.js +++ b/src/locales/zh_Hans.js @@ -55,6 +55,8 @@ export default { 'OK': '确定', 'Cancel': '取消', 'Done': '完成', + 'User': '用户', + 'Application': '应用', 'Home': '首页', 'Journals': '流水', 'Accounts': '账户', @@ -90,6 +92,7 @@ export default { 'Use a backup code': '使用备用码', 'Use a passcode': '使用验证码', 'Sign Up': '注册', + 'User Profile': '用户信息', 'Language': '语言', 'You have been successfully registered': '注册成功', 'Unable to sign up': '无法注册', diff --git a/src/views/mobile/Login.vue b/src/views/mobile/Login.vue index d5c300ec..eb2fe610 100644 --- a/src/views/mobile/Login.vue +++ b/src/views/mobile/Login.vue @@ -170,7 +170,7 @@ export default { return; } - self.$user.updateToken(data.result.token); + self.$user.updateToken(data.result); router.navigate('/'); }).catch(error => { hasResponse = true; @@ -225,7 +225,7 @@ export default { return; } - self.$user.updateToken(data.result.token); + self.$user.updateToken(data.result); app.sheet.close('#2fa-auth-sheet'); router.navigate('/'); }).catch(error => { diff --git a/src/views/mobile/Settings.vue b/src/views/mobile/Settings.vue index ec09f116..e46ca07c 100644 --- a/src/views/mobile/Settings.vue +++ b/src/views/mobile/Settings.vue @@ -1,6 +1,12 @@ @@ -26,6 +31,9 @@ export default { }; }, computed: { + userNickName() { + return this.$user.getUserNickName() || this.$user.getUserName() || this.$t('User'); + }, currentLocale: { get: function () { return this.$i18n.locale diff --git a/src/views/mobile/Signup.vue b/src/views/mobile/Signup.vue index 9ad8b2af..feda1691 100644 --- a/src/views/mobile/Signup.vue +++ b/src/views/mobile/Signup.vue @@ -107,7 +107,7 @@ export default { return; } - if (typeof(data.result) === 'string') { + if (typeof(data.result) === 'object') { self.$user.updateToken(data.result); }