基于网易云API做的一个扫码登录

趁着几天有空的时间做了个超级简单的音乐(pc端)

首先讲登录(这里演示扫码登录)

第一步看接口文档

1. 二维码key生成接口

说明: 调用此接口可生成一个key

接口地址 : /login/qr/key

2. 二维码生成接口

必选参数: key,由第一个接口生成

可选参数: qrimg 传入后会额外返回二维码图片base64编码

接口地址 : /login/qr/create

3. 二维码检测扫码状态接口

必选参数: key,由第一个接口生成

接口地址 : /login/qr/check

第二步看完文档,当然是去接接口哇(另一篇文档有写如何封装请求头

// 时间戳timestamp
// 说明: 调用此接口可生成一个key

export function qrCodeLoginKey(timestamp){
    return request.get('/login/qr/key?timestamp='+timestamp)
}

// 2. 二维码生成接口
// 说明: 调用此接口传入上一个接口生成的key可生成二维码图片的base64和二维码信息,可使用base64展示图片,或者使用二维码信息内容自行使用第三方二维码生成库渲染二维码

export function qrCodeLoginImg(key){
    return request.get('/login/qr/create?qrimg=true&key='+key)
}

// 3. 二维码检测扫码状态接口
// 说明: 轮询此接口可获取二维码扫码状态,800为二维码过期,801为等待扫码,802为待确认,803为授权登录成功(803状态码下会返回cookies)

export function qrCodeLoginCheck(key,timestamp){
    return request.get('/login/qr/check?key='+key+'&timestamp='+timestamp)
}

第三步引入后,写二维码登录逻辑

按需引入

import {
		qrCodeLoginKey,
		qrCodeLoginImg,
		qrCodeLoginCheck
	} from '../api/necessary.js'

再写逻辑前我们要明白是什么逻辑!!!(这个很重要)

首先我们要通过第一个接口拿到key,然后给key第二个接口拿到二维码图片,最后是每隔一段时间调第三接口check检测登录状态!!!

HAO!逻辑知道了,开始动手

			login: async function() {
				let nowtime = Date.now();
				//调第一个接口拿key
				let key = (await qrCodeLoginKey(nowtime)).data.data.unikey
				//调第二个接口拿二维码图片
				let sginImgURL = (await qrCodeLoginImg(key)).data.data.qrimg
				this.$store.state.signShow = true
				this.$store.state.signURL = sginImgURL
				// 800为二维码过期,801为等待扫码,802为待确认,803为授权登录成功
				//每三秒check一次
				let check = setInterval(async () => {
					let nowtime2 = new Date().getTime();
					let res = await qrCodeLoginCheck(key,nowtime2).then()
					console.log(res.data.message, '---')
					if (res.data.code == 800) {
						alert(res.data.message)
						clearInterval(check)
					}
					if (res.data.code == 803) {
						alert(res.data.message)
						clearInterval(check)
					}
				}, 3000)
			}

最后看一下效果图

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值