添加前端权限

This commit is contained in:
橙子
2022-05-03 17:34:38 +08:00
parent ada36ebff5
commit 5eec076ea2
7 changed files with 49 additions and 11 deletions

View File

@@ -27,10 +27,12 @@ namespace Yi.Framework.ApiMicroservice.Controllers
{ {
private IUserService _iUserService; private IUserService _iUserService;
private JwtInvoker _jwtInvoker; private JwtInvoker _jwtInvoker;
private ILogger _logger;
public AccountController(ILogger<UserEntity> logger, IUserService iUserService, JwtInvoker jwtInvoker) public AccountController(ILogger<UserEntity> logger, IUserService iUserService, JwtInvoker jwtInvoker)
{ {
_iUserService = iUserService; _iUserService = iUserService;
_jwtInvoker = jwtInvoker; _jwtInvoker = jwtInvoker;
_logger = logger;
} }
/// <summary> /// <summary>
@@ -45,7 +47,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers
UserEntity user = new(); UserEntity user = new();
if (await _iUserService.Login(loginDto.UserName, loginDto.Password, o => user = o)) if (await _iUserService.Login(loginDto.UserName, loginDto.Password, o => user = o))
{ {
return Result.Success("登录成功!").SetData(new { user, token = _jwtInvoker.GetAccessToken(user) }); return Result.Success("登录成功!").SetData(new { token = _jwtInvoker.GetAccessToken(user) });
} }
return Result.SuccessError("登录失败!用户名或者密码错误!"); return Result.SuccessError("登录失败!用户名或者密码错误!");
} }
@@ -67,7 +69,11 @@ namespace Yi.Framework.ApiMicroservice.Controllers
return Result.SuccessError("注册失败!用户名已存在!"); return Result.SuccessError("注册失败!用户名已存在!");
} }
[HttpPost]
public Result Logout()
{
return Result.Success("安全登出成功!");
}
/// <summary> /// <summary>
/// 通过已登录的用户获取用户信息及菜单 /// 通过已登录的用户获取用户信息及菜单

View File

@@ -51,7 +51,6 @@ export default {
}, },
updateUserByHttp(user) updateUserByHttp(user)
{ {
return myaxios({ return myaxios({
url: `/Account/updateUserByHttp`, url: `/Account/updateUserByHttp`,
method: 'put', method: 'put',

View File

@@ -1,8 +1,9 @@
import { getToken, setToken, getUser, setUser, removeToken } from '../../util/usertoken' import { getPer, setPer, getToken, setToken, getUser, setUser, removeToken } from '../../util/usertoken'
import accountApi from "@/api/accountApi" import accountApi from "@/api/accountApi"
//再导入axion请求 //再导入axion请求
const state = { //状态 const state = { //状态
per: getPer(),
token: getToken(), token: getToken(),
user: getUser(), user: getUser(),
dark: false, dark: false,
@@ -20,13 +21,17 @@ const state = { //状态
'https://s1.ax1x.com/2022/03/26/qdNnbD.jpg', 'https://s1.ax1x.com/2022/03/26/qdNnbD.jpg',
'https://s1.ax1x.com/2022/03/26/qdNMUH.jpg', 'https://s1.ax1x.com/2022/03/26/qdNMUH.jpg',
'https://s1.ax1x.com/2022/03/26/qdNKVe.jpg', 'https://s1.ax1x.com/2022/03/26/qdNKVe.jpg',
'https://s1.ax1x.com/2022/03/26/qdNmDO.jpg' 'https://s1.ax1x.com/2022/03/26/qdNmDO.jpg'
], ],
notifications: [], notifications: [],
rtl: false rtl: false
} }
const mutations = { //变化//载荷 const mutations = { //变化//载荷
SET_PER(state, per) {
state.per = per
setPer(per)
},
SET_TOKEN(state, token) { SET_TOKEN(state, token) {
state.token = token state.token = token
setToken(token) setToken(token)
@@ -78,9 +83,22 @@ const actions = { //动作
accountApi.login(form.username.trim(), form.password.trim()).then(resp => { accountApi.login(form.username.trim(), form.password.trim()).then(resp => {
if (resp.status) { if (resp.status) {
commit('SET_TOKEN', resp.data.token) commit('SET_TOKEN', resp.data.token)
commit('SET_USER', resp.data.user)
accountApi.getUserAllInfo().then(resp2=>{
commit('SET_USER', resp2.data.user)
var code=[];
resp2.data.menus.forEach(element => {
code.push(element.permissionCode)
});
commit('SET_PER', code)
resolv(resp)
})
} }
resolv(resp)
}).catch(error => { }).catch(error => {
reject(error) reject(error)
}) })

View File

@@ -1,18 +1,30 @@
const TOKEN_KEY = "token_key" const TOKEN_KEY = "token_key"
const USER_KEY = "user_key" const USER_KEY = "user_key"
const PER_KEY="per_key"
export function getToken() { export function getToken() {
return localStorage.getItem(TOKEN_KEY) return localStorage.getItem(TOKEN_KEY)
} }
export function setToken(token) {
return localStorage.setItem(TOKEN_KEY, token)
}
export function getUser() { export function getUser() {
return JSON.parse(localStorage.getItem(USER_KEY)) return JSON.parse(localStorage.getItem(USER_KEY))
} }
export function getPer() {
return JSON.parse(localStorage.getItem(PER_KEY))
}
export function setToken(token) {
return localStorage.setItem(TOKEN_KEY, token)
}
export function setUser(user) { export function setUser(user) {
return localStorage.setItem(USER_KEY, JSON.stringify(user)) return localStorage.setItem(USER_KEY, JSON.stringify(user))
} }
export function setPer(per) {
return localStorage.setItem(PER_KEY, JSON.stringify(per))
}
export function removeToken() { export function removeToken() {
localStorage.removeItem(TOKEN_KEY) localStorage.removeItem(TOKEN_KEY)
localStorage.removeItem(USER_KEY) localStorage.removeItem(USER_KEY)
localStorage.removeItem(PER_KEY)
} }

View File

@@ -59,6 +59,9 @@ export default {
}); });
}, },
init() { init() {
//这里可以遍历后台的菜单code根据对应的菜单code来给axiosUrls的增删改查赋值即可
this.axiosUrls = { this.axiosUrls = {
get: "/user/GetList", get: "/user/GetList",
update: "/user/Update", update: "/user/Update",

View File

@@ -133,7 +133,7 @@ export default {
}; };
}, },
login() { login() {
this.loader = "true"; this.loader = true;
this.btn_dis=true; this.btn_dis=true;
this.$store.dispatch("Login", this.form).then((resp) => { this.$store.dispatch("Login", this.form).then((resp) => {
if (resp.status) { if (resp.status) {