Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
safe-campus-bbs
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
万成波
safe-campus-bbs
Commits
3b33817d
Commit
3b33817d
authored
Oct 28, 2025
by
万成波
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
后台企微登录
parent
d66c6978
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
291 additions
and
161 deletions
+291
-161
safe-campus-admin/src/main/resources/application-jxfz.yml
safe-campus-admin/src/main/resources/application-jxfz.yml
+1
-1
safe-campus-bbs-ui/src/api/login.js
safe-campus-bbs-ui/src/api/login.js
+13
-1
safe-campus-bbs-ui/src/permission.js
safe-campus-bbs-ui/src/permission.js
+1
-1
safe-campus-bbs-ui/src/router/index.js
safe-campus-bbs-ui/src/router/index.js
+6
-1
safe-campus-bbs-ui/src/store/modules/user.js
safe-campus-bbs-ui/src/store/modules/user.js
+81
-58
safe-campus-bbs-ui/src/utils/request.js
safe-campus-bbs-ui/src/utils/request.js
+155
-98
safe-campus-bbs-ui/src/views/wechatlogin.vue
safe-campus-bbs-ui/src/views/wechatlogin.vue
+33
-0
safe-campus-bbs-ui/vue.config.js
safe-campus-bbs-ui/vue.config.js
+1
-1
No files found.
safe-campus-admin/src/main/resources/application-jxfz.yml
View file @
3b33817d
...
...
@@ -95,7 +95,7 @@ spring:
# 企业微信配置
wx
:
cp
:
pc-redirect-url
:
https://wecom.jift.edu.cn/bbs/pc
pc-redirect-url
:
https://wecom.jift.edu.cn/bbs/pc
/wechatlogin
mobile-redirect-url
:
https://wecom.jift.edu.cn/bbs/h5/pages/login/login
corp-id
:
wxd2a84aa7529d3801
app-configs
:
...
...
safe-campus-bbs-ui/src/api/login.js
View file @
3b33817d
...
...
@@ -56,4 +56,16 @@ export function getCodeImg() {
method
:
'
get
'
,
timeout
:
20000
})
}
\ No newline at end of file
}
// 企业
export
function
loginByWechatWork
(
data
)
{
return
request
({
url
:
'
/pc/code/login
'
,
headers
:
{
isToken
:
false
},
method
:
'
post
'
,
data
:
data
})
}
safe-campus-bbs-ui/src/permission.js
View file @
3b33817d
...
...
@@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request'
NProgress
.
configure
({
showSpinner
:
false
})
const
whiteList
=
[
'
/login
'
,
'
/register
'
]
const
whiteList
=
[
'
/login
'
,
'
/register
'
,
'
/wechatlogin
'
]
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
NProgress
.
start
()
...
...
safe-campus-bbs-ui/src/router/index.js
View file @
3b33817d
...
...
@@ -46,6 +46,11 @@ export const constantRoutes = [
component
:
()
=>
import
(
'
@/views/login
'
),
hidden
:
true
},
{
path
:
'
/wechatlogin
'
,
component
:
()
=>
import
(
'
@/views/wechatlogin
'
),
hidden
:
true
},
{
path
:
'
/register
'
,
component
:
()
=>
import
(
'
@/views/register
'
),
...
...
@@ -177,7 +182,7 @@ Router.prototype.replace = function push(location) {
}
export
default
new
Router
({
base
:
'
/bbspc
'
,
base
:
'
/bbs
/
pc
'
,
mode
:
'
history
'
,
// 去掉url中的#
scrollBehavior
:
()
=>
({
y
:
0
}),
routes
:
constantRoutes
...
...
safe-campus-bbs-ui/src/store/modules/user.js
View file @
3b33817d
import
{
login
,
logout
,
getInfo
}
from
'
@/api/login
'
import
{
getToken
,
setToken
,
removeToken
}
from
'
@/utils/auth
'
import
{
login
,
logout
,
getInfo
,
loginByWechatWork
}
from
"
@/api/login
"
;
import
{
getToken
,
setToken
,
removeToken
}
from
"
@/utils/auth
"
;
const
user
=
{
state
:
{
token
:
getToken
(),
name
:
''
,
avatar
:
''
,
name
:
""
,
avatar
:
""
,
roles
:
[],
permissions
:
[]
permissions
:
[]
,
},
mutations
:
{
SET_TOKEN
:
(
state
,
token
)
=>
{
state
.
token
=
token
state
.
token
=
token
;
},
SET_NAME
:
(
state
,
name
)
=>
{
state
.
name
=
name
state
.
name
=
name
;
},
SET_AVATAR
:
(
state
,
avatar
)
=>
{
state
.
avatar
=
avatar
state
.
avatar
=
avatar
;
},
SET_ROLES
:
(
state
,
roles
)
=>
{
state
.
roles
=
roles
state
.
roles
=
roles
;
},
SET_PERMISSIONS
:
(
state
,
permissions
)
=>
{
state
.
permissions
=
permissions
}
state
.
permissions
=
permissions
;
}
,
},
actions
:
{
getWechatLogin
({
commit
},
code
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
loginByWechatWork
({
code
})
.
then
((
res
)
=>
{
setToken
(
res
.
data
);
commit
(
"
SET_TOKEN
"
,
res
.
data
);
resolve
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
},
// 登录
Login
({
commit
},
userInfo
)
{
const
username
=
userInfo
.
username
.
trim
()
const
password
=
userInfo
.
password
const
code
=
userInfo
.
code
const
uuid
=
userInfo
.
uuid
const
username
=
userInfo
.
username
.
trim
()
;
const
password
=
userInfo
.
password
;
const
code
=
userInfo
.
code
;
const
uuid
=
userInfo
.
uuid
;
return
new
Promise
((
resolve
,
reject
)
=>
{
login
(
username
,
password
,
code
,
uuid
).
then
(
res
=>
{
setToken
(
res
.
token
)
commit
(
'
SET_TOKEN
'
,
res
.
token
)
resolve
()
}).
catch
(
error
=>
{
reject
(
error
)
})
})
login
(
username
,
password
,
code
,
uuid
)
.
then
((
res
)
=>
{
setToken
(
res
.
token
);
commit
(
"
SET_TOKEN
"
,
res
.
token
);
resolve
();
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
},
// 获取用户信息
GetInfo
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getInfo
().
then
(
res
=>
{
const
user
=
res
.
user
const
avatar
=
(
user
.
avatar
==
""
||
user
.
avatar
==
null
)
?
require
(
"
@/assets/images/profile.jpg
"
)
:
process
.
env
.
VUE_APP_BASE_API
+
user
.
avatar
;
if
(
res
.
roles
&&
res
.
roles
.
length
>
0
)
{
// 验证返回的roles是否是一个非空数组
commit
(
'
SET_ROLES
'
,
res
.
roles
)
commit
(
'
SET_PERMISSIONS
'
,
res
.
permissions
)
}
else
{
commit
(
'
SET_ROLES
'
,
[
'
ROLE_DEFAULT
'
])
}
commit
(
'
SET_NAME
'
,
user
.
userName
)
commit
(
'
SET_AVATAR
'
,
avatar
)
resolve
(
res
)
}).
catch
(
error
=>
{
reject
(
error
)
})
})
getInfo
()
.
then
((
res
)
=>
{
const
user
=
res
.
user
;
const
avatar
=
user
.
avatar
==
""
||
user
.
avatar
==
null
?
require
(
"
@/assets/images/profile.jpg
"
)
:
process
.
env
.
VUE_APP_BASE_API
+
user
.
avatar
;
if
(
res
.
roles
&&
res
.
roles
.
length
>
0
)
{
// 验证返回的roles是否是一个非空数组
commit
(
"
SET_ROLES
"
,
res
.
roles
);
commit
(
"
SET_PERMISSIONS
"
,
res
.
permissions
);
}
else
{
commit
(
"
SET_ROLES
"
,
[
"
ROLE_DEFAULT
"
]);
}
commit
(
"
SET_NAME
"
,
user
.
userName
);
commit
(
"
SET_AVATAR
"
,
avatar
);
resolve
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
},
// 退出系统
LogOut
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
logout
(
state
.
token
).
then
(()
=>
{
commit
(
'
SET_TOKEN
'
,
''
)
commit
(
'
SET_ROLES
'
,
[])
commit
(
'
SET_PERMISSIONS
'
,
[])
removeToken
()
resolve
()
}).
catch
(
error
=>
{
reject
(
error
)
})
})
logout
(
state
.
token
)
.
then
(()
=>
{
commit
(
"
SET_TOKEN
"
,
""
);
commit
(
"
SET_ROLES
"
,
[]);
commit
(
"
SET_PERMISSIONS
"
,
[]);
removeToken
();
resolve
();
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
},
// 前端 登出
FedLogOut
({
commit
})
{
return
new
Promise
(
resolve
=>
{
commit
(
'
SET_TOKEN
'
,
''
)
removeToken
()
resolve
()
})
}
}
}
return
new
Promise
(
(
resolve
)
=>
{
commit
(
"
SET_TOKEN
"
,
""
);
removeToken
()
;
resolve
()
;
})
;
}
,
}
,
}
;
export
default
user
export
default
user
;
safe-campus-bbs-ui/src/utils/request.js
View file @
3b33817d
This diff is collapsed.
Click to expand it.
safe-campus-bbs-ui/src/views/wechatlogin.vue
0 → 100644
View file @
3b33817d
<
template
>
<div>
</div>
</
template
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
export
default
{
mounted
()
{
if
(
this
.
isWeComEnv
())
{
// 企业微信环境处理
const
code
=
this
.
$route
.
query
.
code
this
.
getWechatLogin
(
code
).
then
(()
=>
{
this
.
$router
.
replace
(
'
/
'
)
})
}
else
{
// 非企业微信环境,跳转到普通登录页
this
.
$router
.
replace
(
'
/login
'
)
}
},
methods
:
{
// 判断是否为企业微信环境
isWeComEnv
()
{
// return true
const
userAgent
=
window
.
navigator
.
userAgent
.
toLowerCase
()
return
userAgent
.
includes
(
'
wxwork
'
)
||
(
userAgent
.
includes
(
'
micromessenger
'
)
&&
userAgent
.
includes
(
'
wxwork
'
))
},
// 映射 Vuex 中的 getWechatLogin 方法
...
mapActions
([
'
getWechatLogin
'
])
}
}
</
script
>
safe-campus-bbs-ui/vue.config.js
View file @
3b33817d
...
...
@@ -18,7 +18,7 @@ module.exports = {
// 部署生产环境和开发环境下的URL。
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath
:
process
.
env
.
NODE_ENV
===
"
production
"
?
"
/bbspc
"
:
"
/
"
,
publicPath
:
process
.
env
.
NODE_ENV
===
"
production
"
?
"
/bbs
/
pc
"
:
"
/
"
,
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir
:
'
dist
'
,
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment