微信小程序授权登录和获取手机号功能(详细)

时间:2024-10-07 13:54:16

请依次允许获得你的公开信息及手机号码

{{AuthorizedLogin}}

{{UserPhone}}

请升级微信版本

(四)

.header {

margin: 90rpx 0 90rpx 50rpx;

border-bottom: 1px solid #ccc;

text-align: center;

width: 650rpx;

height: 300rpx;

line-height: 450rpx;

}

.header image {

width: 200rpx;

height: 200rpx;

}

.content {

margin-left: 50rpx;

margin-bottom: 90rpx;

}

.content text {

display: block;

color: #9d9d9d;

margin-top: 40rpx;

}

/* .operBtn{

border-radius: 80rpx;

margin: 70rpx 50rpx;

font-size: 35rpx;

}

.operBtns{

background: #eef0ed !important;

border-radius: 80rpx;

margin: 70rpx 50rpx;

font-size: 35rpx;

color: #000300 !important;

} */

.hide{

border-radius: 80rpx;

margin: 70rpx 50rpx;

font-size: 35rpx;

display: none;

}

.show{

display: block;

/* background: #eef0ed !important; */

border-radius: 80rpx;

margin: 70rpx 50rpx;

font-size: 35rpx;

/* color: #000300 !important; */

}

(三)

const app = getApp();

Page({

data: {

//判断小程序的API,回调,参数,组件等是否在当前版本可用。

canIUse: (‘’),

isHide: false,

AuthorizedLogin: ‘授权登录’,

UserPhone: ‘手机号授权’,

lee: “”,

flag: true

},

onLoad: function() {

var that = this;

// 查看是否授权

//获取用户本地是否是第一次进入新版本

var versions = (‘versions’);

if (versions == ‘1’) {

({

success: function(res) {

if ([‘’]) {

//调用共通的登录方法

(

function(userinfo) {

({

userinfo: userinfo

})

});

} else {

// 用户没有授权

// 改变 isHide 的值,显示授权页面

({

isHide: true

});

}

}

});

} else {

// 用户没有授权

// 改变 isHide 的值,显示授权页面

({

isHide: true

});

}

},

bindGetUserInfo: function(e) {

if () {

//用户按了允许授权按钮

var that = this;

let user = ;

// 获取到用户的信息了,打印到控制台上看下

console.log(“用户的信息如下:”);

(user);

//授权成功后,通过改变 isHide 的值,让实现页面显示出来,把授权页面隐藏起来

if ( == ‘’) {

({

icon: “none”,

title: ‘请继续点击获取手机号’,

}),

({

isHide: true,

flag: (!),

lee: true

})

();

} else if (!) {

({

url: “/wurui_house/pages/index/index”

})

}

} else {

//用户按了拒绝按钮

({

title: ‘警告’,

content: ‘您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!’,

showCancel: false,

confirmText: ‘返回授权’,

success: function(res) {

// 用户没有授权成功,不需要改变 isHide 的值

if () {

(‘用户点击了“返回授权”’);

}

}

});

}

},

wxlogin: function() { //获取用户的openID

var that = this;

//调用共通的登录方法

(

function(userinfo) {

({

userinfo: userinfo

})

});

},

getPhoneNumber: function(e) { //点击获取手机号码按钮

var that = this;

if ( == ‘’) {

({

icon: “none”,

title: ‘请先点击获取用户信息’,

})

return

} else {

({

success: function(res) {

()

()

()

var ency = ;

var iv = ;

var sessionk = ;

if ( == ‘getPhoneNumber:fail user deny’) {

({

title: ‘警告’,

content: ‘您点击了拒绝授权,部分功能无法使用!!!’,

showCancel: false,

confirmText: ‘返回授权’,

success: function(res) {

// 用户没有授权成功,不需要改变 isHide 的值

if () {

(‘enws’, ‘1’);

({

url: “/wurui_house/pages/index/index”

})

(‘用户点击了“返回授权”’);

};

}

}),

({

modalstatus: true,

});

} else {

({

lee: false,

});

({

url: “/wurui_house/pages/index/index”

})

//同意授权

var userinfo = (‘userInfo’);

.request({

‘url’: ‘entry/wxapp/saveusermobile’,

data: {

sessionid: ,

uid: ,

iv: iv,

encryptedData: ency

},

success: function(res) {

if ( == 0) {

(‘success’ + );

//用户已经进入新的版本,可以更新本地数据

(‘versions’, ‘1’);

(‘enws’, ‘2’);

} else {

//用户保存手机号失败,下次进入继续授权手机号

(‘enws’, ‘1’);

(‘fail’ + );

}

},

fail: function(res) {

(‘fail’ + res);

}

});

}

},

fail: function() {

(“session_key 已经失效,需要重新执行登录流程”);

(); //重新登录

}

});

}

}

})

2.某个详情页手机号授权判断

使用的遮罩层写法

(一)

允许授权获取手机号

取消

确认

(二)

/* 手机号授权 */

.float {

height: 100%;

width: 100%;

position: fixed;

background-color: rgba(0, 0, 0, 0.5);

z-index: 2;

top: 0;

left: 0;

}

.floatContent {

/* padding: 20rpx 0; */

width: 80%;

background: #fff;

margin: 40% auto;

border-radius: 20rpx;

display: flex;

flex-direction: column;

justify-content: space-around;

align-items: center;

position: relative;

height: 255rpx;

}

.floatContent text {

color: #000;

font-size: 40rpx;

display: block;

margin: 0 auto;

position: absolute;

top: 50rpx;

/* text-align: center; */

/* line-height: 60rpx; */

border-radius: 30rpx;

}

.floatText{

width: 100%;

height: 100rpx;

display: flex;

justify-content: flex-start;

position: absolute;

bottom: 0;

}

.btn-cancle{

line-height: 100rpx;

flex: 1;

margin: 0;

padding: 0;

border-radius: none;

}

(三)

data: {

viewShowed: true, //控制授权能否显示

},

cancle: function () {

(‘enws’, ‘2’);

({

viewShowed: true

})

},

/**

  • 生命周期函数–监听页面显示

*/

onShow: function () {

var enws = (‘enws’);

(“enws:”, +enws);

var that = this;

if (enws != ‘2’) { //判断能否授权

({

viewShowed: false,

})

(‘判断能否授权’);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

完整版面试题资料分享,只需你点赞支持,动动手指点击此处就可免费领取了

前端实习面试的套路


回顾项目

往往在面试时,面试官根据你简历中的项目由点及面地展开问答,所以请对你做过的最好的项目进行回顾和反思。回顾你做过的工作和项目中最复杂的部分,反思你是如何完成这个最复杂的部分的。

面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

需你点赞支持,动动手指点击此处就可免费领取了

前端实习面试的套路


回顾项目

往往在面试时,面试官根据你简历中的项目由点及面地展开问答,所以请对你做过的最好的项目进行回顾和反思。回顾你做过的工作和项目中最复杂的部分,反思你是如何完成这个最复杂的部分的。

面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。