快手小程序一键登录

快手一键登录
<template>
<view>
<button class="tel-button" @click="onClickToast">手机号快捷登录</button>
                <button @getphonenumber="getPhoneNumber" class="login-btn" open-type="getPhoneNumber" v-if="checked"></button>
    </view>
</template>
<script>
//解密文件
var WXBizDataCrypt = require('../../utils/WXBizDataCrypt.js');
    export default {
        methods: {
    onClickToast: function () {
    //登录条件判断
			if(!this.checked){
				uni.showToast({
					title: '请阅读并勾选协议',
					icon: 'none'
				});
				return;
			}
        },
		 getPhoneNumber: async function (e) {
			var that = this;
			// console.log("点击按钮获取手机号",e); //获取encryptedData、iv,encryptedData就是加密的数据
			if(e.detail.errMsg == 'getPhoneNumber:fail no permission'){
				 uni.showToast("小程序未认证", 'fail',"none", 1000);
				return false;
			}else if(e.detail.iv == undefined || !e.detail.iv){
				 uni.showToast("授权失败",'fail',"none", 1000);
				return false;
			} else if(e.detail.errMsg == 'getPhoneNumber:user deny'){
				//用户拒绝授权,停留在当前页
				uni.showToast({
					  title: "用户拒绝授权",
					  icon: 'none'
				})
			}else{
			//获取code
				let code = await  this.getCode();
				console.log(code)
				let reer = await that.$Util.session_key({code:code});
				//使用官方接口获取session_key
				//地址:https://open.kuaishou.com/oauth2/mp/code2session
				//参数需要,js_code,app_id,app_secret
				that.checkSession(reer, e, (data)=>{
				//解密需要使用解密文件
				获取到手机号---data.phoneNumber
				});
				
			}
		},
		checkSession(reer, ea, e){
			let ksappid = uni.getAccountInfoSync().miniProgram.appId
			// return new Promise(function (e, t) {
				ks.checkSession({
					success: (res) => {
					//进行解密
						var pc = new WXBizDataCrypt(ksappid,reer.data.data.session_key);
						var data = pc.decryptData(ea.detail.encryptedData, ea.detail.iv);
						e(data)//返回data解密后的数据
					},
					fail: (err)=>{
						console.log("失效 重新login")
					}
				})
			// })
		},
		getCode(){
		  return new Promise(function (e, t) {
			  ks.login({
				provider: 'univerify',
				univerifyStyle: { },// 自定义登录框样式
				success(res){ // 获取到code
					e(res.code);
				},
				fail(res){  // 登录失败
					console.log(res.errMsg)
				}
			  })
		  })
		},
    }
    }
</script>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值