show user nickname in settings page

This commit is contained in:
MaysWind
2020-10-27 23:08:38 +08:00
parent 0c7391b85d
commit f509530d06
9 changed files with 67 additions and 11 deletions
+6
View File
@@ -77,6 +77,8 @@ func (a *AuthorizationsApi) AuthorizeHandler(c *core.Context) (interface{}, *err
authResp := &models.AuthResponse{ authResp := &models.AuthResponse{
Token : token, Token : token,
Username: user.Username,
Nickname: user.Nickname,
Need2FA: twoFactorEnable, Need2FA: twoFactorEnable,
} }
@@ -132,6 +134,8 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeHandler(c *core.Context) (interfac
authResp := &models.AuthResponse{ authResp := &models.AuthResponse{
Token : token, Token : token,
Username: user.Username,
Nickname: user.Nickname,
Need2FA: false, Need2FA: false,
} }
@@ -193,6 +197,8 @@ func (a *AuthorizationsApi) TwoFactorAuthorizeByRecoveryCodeHandler(c *core.Cont
authResp := &models.AuthResponse{ authResp := &models.AuthResponse{
Token : token, Token : token,
Username: user.Username,
Nickname: user.Nickname,
Need2FA: false, Need2FA: false,
} }
+9 -1
View File
@@ -63,7 +63,15 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Erro
c.SetTokenClaims(claims) c.SetTokenClaims(claims)
log.InfofWithRequestId(c, "[users.UserRegisterHandler] user \"uid:%d\" has logined, token will be expired at %d", user.Uid, claims.ExpiresAt) 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) { func (a *UsersApi) UserProfileHandler(c *core.Context) (interface{}, *errs.Error) {
+4 -2
View File
@@ -1,6 +1,8 @@
package models package models
type AuthResponse struct { type AuthResponse struct {
Token string `json:"token"` Token string `json:"token"`
Need2FA bool `json:"need2FA"` Username string `json:"username,omitempty"`
Nickname string `json:"nickname,omitempty"`
Need2FA bool `json:"need2FA"`
} }
+29 -3
View File
@@ -1,23 +1,49 @@
const tokenLocalStorageKey = 'lab_user_token'; const tokenLocalStorageKey = 'lab_user_token';
const userNameLocalStorageKey = 'lab_user_name';
const userNickNameLocalStorageKey = 'lab_user_nickname';
function getToken() { function getToken() {
return localStorage.getItem(tokenLocalStorageKey); return localStorage.getItem(tokenLocalStorageKey);
} }
function getUserName() {
return localStorage.getItem(userNameLocalStorageKey);
}
function getUserNickName() {
return localStorage.getItem(userNickNameLocalStorageKey);
}
function isUserLogined() { function isUserLogined() {
return !!getToken(); return !!getToken();
} }
function updateToken(token) { function updateToken(item) {
return localStorage.setItem(tokenLocalStorageKey, token); 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() { function clearToken() {
return localStorage.removeItem(tokenLocalStorageKey); localStorage.removeItem(tokenLocalStorageKey);
localStorage.removeItem(userNameLocalStorageKey);
localStorage.removeItem(userNickNameLocalStorageKey);
return true;
} }
export default { export default {
getToken, getToken,
getUserName,
getUserNickName,
isUserLogined, isUserLogined,
updateToken, updateToken,
clearToken clearToken
+3
View File
@@ -55,6 +55,8 @@ export default {
'OK': 'OK', 'OK': 'OK',
'Cancel': 'Cancel', 'Cancel': 'Cancel',
'Done': 'Done', 'Done': 'Done',
'User': 'User',
'Application': 'Application',
'Home': 'Home', 'Home': 'Home',
'Journals': 'Journals', 'Journals': 'Journals',
'Accounts': 'Accounts', 'Accounts': 'Accounts',
@@ -90,6 +92,7 @@ export default {
'Use a backup code': 'Use a backup code', 'Use a backup code': 'Use a backup code',
'Use a passcode': 'Use a passcode', 'Use a passcode': 'Use a passcode',
'Sign Up': 'Sign Up', 'Sign Up': 'Sign Up',
'User Profile': 'User Profile',
'Language': 'Language', 'Language': 'Language',
'You have been successfully registered': 'You have been successfully registered', 'You have been successfully registered': 'You have been successfully registered',
'Unable to sign up': 'Unable to sign up', 'Unable to sign up': 'Unable to sign up',
+3
View File
@@ -55,6 +55,8 @@ export default {
'OK': '确定', 'OK': '确定',
'Cancel': '取消', 'Cancel': '取消',
'Done': '完成', 'Done': '完成',
'User': '用户',
'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': '用户信息',
'Language': '语言', 'Language': '语言',
'You have been successfully registered': '注册成功', 'You have been successfully registered': '注册成功',
'Unable to sign up': '无法注册', 'Unable to sign up': '无法注册',
+2 -2
View File
@@ -170,7 +170,7 @@ export default {
return; return;
} }
self.$user.updateToken(data.result.token); self.$user.updateToken(data.result);
router.navigate('/'); router.navigate('/');
}).catch(error => { }).catch(error => {
hasResponse = true; hasResponse = true;
@@ -225,7 +225,7 @@ export default {
return; return;
} }
self.$user.updateToken(data.result.token); self.$user.updateToken(data.result);
app.sheet.close('#2fa-auth-sheet'); app.sheet.close('#2fa-auth-sheet');
router.navigate('/'); router.navigate('/');
}).catch(error => { }).catch(error => {
+10 -2
View File
@@ -1,6 +1,12 @@
<template> <template>
<f7-page name="home"> <f7-page name="settings">
<f7-navbar :title="$t('Settings')" :back-link="$t('Back')"></f7-navbar> <f7-navbar :title="$t('Settings')" :back-link="$t('Back')"></f7-navbar>
<f7-block-title>{{ userNickName }}</f7-block-title>
<f7-list>
<f7-list-item :title="$t('User Profile')" link="#"></f7-list-item>
<f7-list-button @click="logout">{{ $t('Log Out') }}</f7-list-button>
</f7-list>
<f7-block-title>{{ $t('Application') }}</f7-block-title>
<f7-list> <f7-list>
<f7-list-item <f7-list-item
:title="$t('Language')" :title="$t('Language')"
@@ -11,7 +17,6 @@
:value="locale">{{ lang.displayName }}</option> :value="locale">{{ lang.displayName }}</option>
</select> </select>
</f7-list-item> </f7-list-item>
<f7-list-button @click="logout">{{ $t('Log Out') }}</f7-list-button>
</f7-list> </f7-list>
</f7-page> </f7-page>
</template> </template>
@@ -26,6 +31,9 @@ export default {
}; };
}, },
computed: { computed: {
userNickName() {
return this.$user.getUserNickName() || this.$user.getUserName() || this.$t('User');
},
currentLocale: { currentLocale: {
get: function () { get: function () {
return this.$i18n.locale return this.$i18n.locale
+1 -1
View File
@@ -107,7 +107,7 @@ export default {
return; return;
} }
if (typeof(data.result) === 'string') { if (typeof(data.result) === 'object') {
self.$user.updateToken(data.result); self.$user.updateToken(data.result);
} }