Ant Design Pro V4.5 登录成功后用户名的显示问题(typescript版)

如果后台使用的Abp,登录成功后登录信息中只有userId没有发现用户名,虽然Token中包含了用户名信息,目前我还不知道如何获取,占时可以通过从服务器请求来实现用户信息获取

 我这里修改services中的user.ts即可修改显示的用户名

只需要吧服务器获取的用户名替换掉这个即可,我这里在models中的user.ts中引用的这个文件

我们在      const response = yield call(queryCurrent);之后获取name修改下即可

const userName = yield call(getUserName);

response.name = userName.result;

全部代码

import { Effect, Reducer } from 'umi';

import { queryCurrent, query as queryUsers } from '@/services/user';
import { getUserName } from '@/services/login';

export interface CurrentUser {
  avatar?: string;
  name?: string;
  title?: string;
  group?: string;
  signature?: string;
  tags?: {
    key: string;
    label: string;
  }[];
  userid?: string;
  unreadCount?: number;
}

export interface UserModelState {
  currentUser?: CurrentUser;
}

export interface UserModelType {
  namespace: 'user';
  state: UserModelState;
  effects: {
    fetch: Effect;
    fetchCurrent: Effect;
  };
  reducers: {
    saveCurrentUser: Reducer<UserModelState>;
    changeNotifyCount: Reducer<UserModelState>;
  };
}

const UserModel: UserModelType = {
  namespace: 'user',

  state: {
    currentUser: {},
  },

  effects: {
    *fetch(_, { call, put }) {
      const response = yield call(queryUsers);
      yield put({
        type: 'save',
        payload: response,
      });
    },
    *fetchCurrent(_, { call, put }) {
      const response = yield call(queryCurrent);
      const userName = yield call(getUserName);
      response.name = userName.result;
      yield put({
        type: 'saveCurrentUser',
        payload: response,userName
      });
    },
  },

  reducers: {
    saveCurrentUser(state, action) {
      return {
        ...state,
        currentUser: action.payload || {},
      };
    },
    changeNotifyCount(
      state = {
        currentUser: {},
      },
      action,
    ) {
      return {
        ...state,
        currentUser: {
          ...state.currentUser,
          notifyCount: action.payload.totalCount,
          unreadCount: action.payload.unreadCount,
        },
      };
    },
  },
};

export default UserModel;

服务器请求代码 

export async function getUserName() {
  return request(`/api/services/app/UserMenuRolesService/GetUserName`, {
      method: 'GET'
  });
}

服务器代码

        public string GetUserName()
        {
            var user = _userAppService.GetAsync(new Abp.Application.Services.Dto.EntityDto<long>() { Id = (long)_abpSession.UserId }).Result;
            if(user!=null)
            {
                return user.UserName;
            }
            else
            {
                return "未找到该用户名";
            }
        }

好了,用户名改变了,这里面还可以根据你们自己的需求获取其他信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花开花落的个人博客

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值