钉钉移动端和PC端免登实现

放个官方网址

然后进入正题。
以移动端为例。

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就行
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值