放个官方网址
然后进入正题。
以移动端为例。
1.在需要免登页面先引入
import dd from 'gdt-jsapi'
import { mapMutations } from 'vuex'
import { setToken } from '@/utils/auth'
这其中涉及到的auth.js
代码
import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token'
const roleName = 'Admin-Role'
export function getToken () {
return Cookies.get(TokenKey)
}
export function setToken (token) {
return Cookies.set(TokenKey, token)
}
export function removeToken () {
return Cookies.remove(TokenKey)
}
export function getRole () {
return Cookies.get(roleName)
}
export function setRole (roleId) {
return Cookies.set(roleName, roleId)
}
export function removeRole () {
return Cookies.remove(roleName)
}
2.需要免登页面的methods中定义个方法。
...mapMutations(['SET_TOKEN']), // store下的user.js中mutation定义了SET_TOKEN函数
dingLogin () {
dd.getAuthCode({ corpId: 'xxxxx' }).then(async auth => { // 拿着corpId去请求需要的包含code的auth
const result = await this.$http.post(`/api/ding/authenticate?code=${auth.code}`) // 根据code获取包含token的授权码
const jwt = result.token
this.SET_TOKEN(jwt)
await this.$store.dispatch('GetInfo') // 保存token
if (!this.$store.state.user.token) return this.$message.error('登录失败')
this.$message.success('登录成功')
})
}
3.然后调用
pc端和移动端区别
auth.code改成auth.auth_code就行