yk-sso
v1.0.38
Published
友嘉前端登录服务
Downloads
225
Readme
1、安装 yk-sso
npm i yk-sso
2、在 main.js 中取消引入 permission.js
3、在 app.vue/main.js 中初始化
import yksso from 'yk-sso'
// 进行初始化
yksso.init(process.env.VUE_APP_BASE_API, () => {
this.$store.dispatch('user/getInfo')
this.$router.push({ path: this.redirect || '/' })
})
4、修改 logout 和获取用户信息的方式
// 以模板项目为例
// @/store/user.js
import Cookies from 'js-cookie'
import yksso from 'yk-sso'
const getDefaultState = () => {
return {
name: Cookies.get('username') // 推荐使用cookie保存用户信息
}
}
async getInfo({ commit, state }) {
const { data } = await yksso.getUserInfo()
Cookies.set('username', data.username)
commit('SET_NAME', data.username)
},
async logout({ commit, state }) {
await yksso.logout(() => {
resetRouter()
commit('RESET_STATE')
})
},
5、修改 request.js 的拦截器配置
import yksso from 'yk-sso'
// 在请求拦截器中
service.interceptors.request.use(
config => {
// other code
// 传入config后会判断有无token,若存在token会自动写入请求头并返回
config = yksso.getHeaderToken(config)
}
)
// 在响应拦截器中,需要对错误码401进行特殊处理,最后logout
service.interceptors.response.use(
response => {
if (res.code === 401) {
logout()
}
},
error => {
const { response } = error
const { data } = response
console.log('err' + error) // for debug
if (data.code === 401) {
logout()
}
}
)
function logout() {
Message.error('登陆失效,请重新登陆!')
store.dispatch('user/logout')
}