Bläddra i källkod

添加授权功能

dev
corala 3 år sedan
förälder
incheckning
ad9729fde3
7 ändrade filer med 103 tillägg och 42 borttagningar
  1. +2
    -2
      app.json
  2. +8
    -13
      pages/index/index.js
  3. +5
    -7
      pages/index/index.wxml
  4. +78
    -17
      pages/login/index.js
  5. +2
    -2
      pages/login/index.wxml
  6. +2
    -1
      project.config.json
  7. +6
    -0
      project.private.config.json

+ 2
- 2
app.json Visa fil

@@ -1,10 +1,10 @@
{
"pages": [
"pages/open/index",
"pages/login/index",
"pages/rank/index",
"pages/index/index",
"pages/open/index",
"pages/out/index",
"pages/rank/index",
"pages/AR/index",
"components/loading/loading"
],


+ 8
- 13
pages/index/index.js Visa fil

@@ -12,13 +12,16 @@ Page({
canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false
},
onLoad() {
if (wx.getUserProfile) {
this.setData({
canIUseGetUserProfile: true
})
}
this.getUserProfile(e)

// if (wx.getUserProfile) {
// this.setData({
// canIUseGetUserProfile: true
// })
// }
},
getUserProfile(e) {
console.log(34)
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
@@ -30,13 +33,5 @@ Page({
})
}
})
},
getUserInfo(e) {
// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
console.log(e)
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
})

+ 5
- 7
pages/index/index.wxml Visa fil

@@ -1,18 +1,16 @@
<!--index.wxml-->
<view class="container">
<view class="userinfo">
<block wx:if="{{canIUseOpenData}}">
<!-- <block wx:if="{{canIUseOpenData}}">
<view class="userinfo-avatar">
<open-data type="userAvatarUrl"></open-data>
</view>
<open-data type="userNickName"></open-data>
</block> -->
<block wx:if="{{!hasUserInfo}}">
<button bindtap="getUserProfile"> 获取头像昵称1 </button>>
</block>
<block wx:elif="{{!hasUserInfo}}">
<button wx:if="{{canIUseGetUserProfile}}" bindtap="getUserProfile"> 获取头像昵称 </button>
<button wx:elif="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
<view wx:else> 请使用1.4.4及以上版本基础库 </view>
</block>
<block wx:else>
<block wx:else>
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>


+ 78
- 17
pages/login/index.js Visa fil

@@ -4,7 +4,8 @@ const app = getApp()

Page({
data: {
ischecked: true
ischecked: true,
token: ''
},
onLoad() {
@@ -19,7 +20,31 @@ Page({
ischecked: !this.data.ischecked
})
},
login(){

// 绑定用户头像信息
bindNickname(obj) {
let that = this
let params = {
headPortrait: obj.avatarUrl,
nickName: obj.nickName,
sex: obj.gender, //1男 2女
region: (obj.province&&obj.city)?(obj.province + ' ' + obj.city): ''
}
wx.request({
url: 'http://49.232.159.78:9999/coupon/c/person/bindNickname',
method: "POST",
data: params,
header: {
Authorization: 'bearer '+ that.data.token
},
success(res) {
if (res.statusCode == 200) {
console.log('绑定用户头像信息成功')
}
}
})
},
getUserInfo(){
if(!this.data.ischecked){
wx.showToast({
title: '请勾选协议',
@@ -28,33 +53,69 @@ Page({
})
return;
}
wx.login({
success (res) {
console.log(res)
if (res.code) {
//发起网络请求
// wx.request({
// url: 'https://example.com/onLogin',
// data: {
// code: res.code
// }
// })
} else {
console.log('登录失败!' + res.errMsg)
}
let that = this
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
wx.login({
success (res1) {
if (res1.code) {
//发起网络请求
wx.request({
url: 'http://49.232.159.78:9999/auth/mobile/token/social?grant_type=mobil&mobile=MINI_C@' + res1.code,
method: "POST",
data: {
},
header: {
Authorization: "Basic YXBwbGV0OmFwcGxldA==",
},
success(res2) {
console.log(33)
if (res2.statusCode == 200) {
console.log(res2)
that.setData({
token: res2.data.access_token
})
that.bindNickname(res.userInfo)
}
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
}
})
},
// 授权手机号
getPhoneNumber(e) {
console.log(e);
let that = this
if (e.detail.errMsg == "getPhoneNumber:ok") {
// console.log(e)
const {
iv,
encryptedData
} = e.detail;
wx.request({
url: 'http://49.232.159.78:9999/coupon/c/person/bindMini',
method: "POST",
data: {
encrypted: encryptedData,
iv
},
header: {
Authorization: 'bearer '+ that.data.token
},
success(res) {
console.log(res)
if (res.statusCode == 200) {
// console.log(res)
}
}
})
// that.$u.api.bindMini({
// encrypted: encryptedData,
// iv


+ 2
- 2
pages/login/index.wxml Visa fil

@@ -12,8 +12,8 @@
<view class="text">勾选表示您已阅读并同意</view>
<view class="text text1">《隐私协议》</view>
</view>
<!-- <button class="btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">绑定手机</button> -->
<view class="btn" bindtap="login">微信一键登录</view>
<button class="btn" wx:if="{{token}}" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">绑定手机</button>
<view class="btn" wx:else bindtap="getUserInfo">微信一键授权</view>
<view class="btn btn1" bindtap="backGame">返回游戏</view>
</view>
</view>

+ 2
- 1
project.config.json Visa fil

@@ -38,7 +38,8 @@
"useStaticServer": true,
"showES6CompileOption": false,
"disableUseStrict": false,
"useCompilerPlugins": false
"useCompilerPlugins": false,
"minifyWXML": true
},
"compileType": "miniprogram",
"libVersion": "2.23.4",


+ 6
- 0
project.private.config.json Visa fil

@@ -0,0 +1,6 @@
{
"setting": {
"compileHotReLoad": false
},
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html"
}

Laddar…
Avbryt
Spara