126 lines
4.0 KiB
JavaScript
126 lines
4.0 KiB
JavaScript
const app = getApp();
|
|
const config = app.loadConfig()
|
|
const regeneratorRuntime = app.loadAsync()
|
|
const api = app.loadApi()
|
|
const { StorageSync } = app.loadModel("getSetting")
|
|
const storage = new StorageSync()
|
|
|
|
export class Getauth {
|
|
/**
|
|
* 获取用户当前授权过小程序的权限
|
|
*/
|
|
getSetting() {
|
|
return new Promise(function (resolve, reject) {
|
|
wx.getSetting({
|
|
success(res) {
|
|
resolve(res)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
/**
|
|
* 个人信息授权处理
|
|
*/
|
|
async userInfo() {
|
|
// 未授权个人信息跳转到授权页面
|
|
// let user = await this.getSetting()
|
|
// if (!user.authSetting['scope.userInfo']) {
|
|
// wx.redirectTo({
|
|
// url: '/pages/login/login'
|
|
// })
|
|
// return
|
|
// }
|
|
// await this.login()
|
|
// 如果已授权跳转首页
|
|
wx.redirectTo({
|
|
url: '/pages/auth/auth?index=1'
|
|
})
|
|
}
|
|
/**
|
|
* 地理位置授权 为了获取用户的地理位置
|
|
*/
|
|
async userLocation() {
|
|
return new Promise(function (resolve, reject) {
|
|
wx.authorize({
|
|
scope: 'scope.userLocation',
|
|
success() {
|
|
wx.getLocation({
|
|
type: 'gcj02',
|
|
success(res) {
|
|
// 把地理信息存到本地
|
|
storage.setStorage("position", res)
|
|
wx.request({
|
|
url: `${config.baseUrl}${api.lately}`, method: "POST", data: {
|
|
lat: res.latitude,
|
|
lng: res.longitude
|
|
},
|
|
success(rel) {
|
|
resolve(rel.data.data)
|
|
storage.setStorage("nearestStore", rel.data.data)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
}
|
|
/**
|
|
* 相册授权
|
|
*/
|
|
albumAuthorization() {
|
|
//获取相册授权
|
|
return new Promise(function (resolve, reject) {
|
|
wx.getSetting({
|
|
success(res) {
|
|
if (!res.authSetting['scope.writePhotosAlbum']) {
|
|
wx.authorize({
|
|
scope: 'scope.writePhotosAlbum',
|
|
success() {
|
|
resolve("ok")
|
|
},
|
|
fail() {
|
|
resolve("err")
|
|
}
|
|
})
|
|
return
|
|
}
|
|
resolve("ok")
|
|
}
|
|
})
|
|
})
|
|
}
|
|
/**
|
|
* 用户登录方法
|
|
* 登陆成功把获取的token存到本地
|
|
*/
|
|
login(userInfo) {
|
|
wx.showLoading({
|
|
title: '登录中',
|
|
})
|
|
let data = userInfo || {};
|
|
return new Promise(function (resolve, reject) {
|
|
wx.login({
|
|
success(res) {
|
|
if (res.code) {
|
|
wx.request({
|
|
url: `${config.baseUrl}${api.login}`, method: "POST", data: { code: res.code, ...data },
|
|
success(rel) {
|
|
storage.setStorage("token", rel.data.data.token)
|
|
resolve(rel)
|
|
app.globalData.isToken = true
|
|
wx.hideLoading()
|
|
}
|
|
})
|
|
} else {
|
|
wx.hideLoading()
|
|
console.log('登录失败!' + res.errMsg)
|
|
}
|
|
},
|
|
fail() {
|
|
wx.hideLoading()
|
|
}
|
|
})
|
|
})
|
|
}
|
|
} |