完成用户退出登录功能

dev
truthhun 2 years ago
parent d56d98d325
commit e72c85ba3e

@ -101,6 +101,13 @@ service UserAPI {
};
}
// 退
rpc Logout(google.protobuf.Empty) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete : '/api/v1/user/logout',
};
}
// Id
rpc GetUser(GetUserRequest) returns (User) {
option (google.api.http) = {

@ -134,6 +134,18 @@ func (s *UserAPIService) Login(ctx context.Context, req *pb.RegisterAndLoginRequ
return &pb.LoginReply{Token: token, User: pbUser}, nil
}
func (s *UserAPIService) Logout(ctx context.Context, req *emptypb.Empty) (res *emptypb.Empty, err error) {
res = &emptypb.Empty{}
userClaims, ok := ctx.Value(auth.CtxKeyUserClaims).(*auth.UserClaims)
if !ok {
return
}
// 标记退出的用户token
s.dbModel.Logout(userClaims.UserId, userClaims.UUID, userClaims.ExpiresAt)
return
}
func (s *UserAPIService) GetUser(ctx context.Context, req *pb.GetUserRequest) (*pb.User, error) {
return &pb.User{}, nil
}

@ -16,6 +16,14 @@ export const login = (data) => {
})
}
export const logout = (params) => {
return service({
url: '/api/v1/user/logout',
method: 'delete',
params,
})
}
export const getUser = (params) => {
return service({
url: '/api/v1/user',

@ -193,7 +193,7 @@ export default {
}
},
methods: {
...mapActions('user', ['Logout']),
...mapActions('user', ['logout']),
async createProject() {},
showCreateProjectDialog() {
this.createProjectVisible = true
@ -220,8 +220,8 @@ export default {
this.formPasswordVisible = true
break
case 'logout':
this.Logout()
this.$router.replace({ path: '/admin/login' })
this.logout()
this.$router.replace({ path: '/' })
this.$message.success('退出成功')
break
}

@ -1,5 +1,5 @@
import { Message } from 'element-ui'
import { login, getUser, updateUser } from '~/api/user'
import { login, getUser, updateUser, logout } from '~/api/user'
export const user = {
namespaced: true,
state: {
@ -65,8 +65,10 @@ export const user = {
}
return res
},
logout({ commit }) {
async logout({ commit }) {
const res = await logout()
commit('logout')
return res
},
},
getters: {

Loading…
Cancel
Save