Commit 7c363b63 authored by 肖健's avatar 肖健

小程序登录调整

parent 6fd1a18f
unpackage unpackage/
\ No newline at end of file \ No newline at end of file
const baseUrl = 'http://mpcw6f.natappfree.cc';
const httpRequest = (opts, data) => {
let httpDefaultOpts = {
url: baseUrl + opts.url,
data: data,
method: opts.method,
header: opts.method == 'get' ? {
'X-Requested-With': 'XMLHttpRequest',
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
} : {
'X-Requested-With': 'XMLHttpRequest',
"Content-Type": "application/json; charset=UTF-8"
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
dataType: 'json',
}
let promise = new Promise(function(resolve, reject) {
uni.request(httpDefaultOpts).then(
(res) => {
resolve(res[1])
}
).catch(
(response) => {
reject(response)
}
)
})
return promise
};
//带Token请求
const httpTokenRequest = (opts, data) => {
let token = uni.getStorageSync('userToken');
uni.getStorage({
key: 'token',
success: function(ress) {
token = ress.data
}
});
//此token是登录成功后后台返回保存在storage中的
let httpDefaultOpts = {
url: baseUrl + opts.url,
data: data,
method: opts.method,
header: opts.method == 'get' ? {
'Authorization': 'Bearer ' + token,
'X-Requested-With': 'XMLHttpRequest',
"Accept": "application/json",
"Content-Type": "application/json; charset=UTF-8"
// "Content-Type": "application/json; charset=UTF-8"
} : {
'Authorization': 'Bearer ' + token,
'X-Requested-With': 'XMLHttpRequest',
"Content-Type": "application/json; charset=UTF-8"
// 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
dataType: 'json',
}
let promise = new Promise(function(resolve, reject) {
uni.request(httpDefaultOpts).then(
(res) => {
// console.log(3333333333333333333,res)
resolve(res[1])
}
).catch(
(response) => {
reject(response)
}
)
})
return promise
};
export default {
baseUrl,
httpRequest,
httpTokenRequest
}
\ No newline at end of file
...@@ -2,9 +2,12 @@ import Vue from 'vue' ...@@ -2,9 +2,12 @@ import Vue from 'vue'
import App from './App' import App from './App'
import uView from '@/common/uview-ui/index'; import uView from '@/common/uview-ui/index';
import http from "./common/api/api.js"
Vue.config.productionTip = false Vue.config.productionTip = false
import ActiveForm from "@/common/active-form/active-form"; import ActiveForm from "@/common/active-form/active-form";
Vue.use(uView); Vue.use(uView);
Vue.prototype.http = http
App.mpType = 'app' App.mpType = 'app'
Vue.component('ActiveForm', ActiveForm) Vue.component('ActiveForm', ActiveForm)
const app = new Vue({ const app = new Vue({
......
{ {
"name": "挪车", "name" : "挪车",
"appid": "__UNI__F54AE0B", "appid" : "__UNI__F54AE0B",
"description": "", "description" : "",
"versionName": "1.0.0", "versionName" : "1.0.0",
"versionCode": "100", "versionCode" : "100",
"transformPx": false, "transformPx" : false,
/* 5+App特有相关 */ /* 5+App特有相关 */
"app-plus": { "app-plus" : {
"optimization": { "optimization" : {
"subPackages": true "subPackages" : true
}, },
"runmode": "liberate", // 开启分包优化后,必须配置资源释放模式 "runmode" : "liberate", // 开启分包优化后,必须配置资源释放模式
"usingComponents": true, "usingComponents" : true,
"splashscreen": { "splashscreen" : {
"alwaysShowBeforeRender": true, "alwaysShowBeforeRender" : true,
"waiting": true, "waiting" : true,
"autoclose": true, "autoclose" : true,
"delay": 0 "delay" : 0
}, },
/* 模块配置 */ /* 模块配置 */
"modules": {}, "modules" : {},
/* 应用发布信息 */ /* 应用发布信息 */
"distribute": { "distribute" : {
/* android打包配置 */ /* android打包配置 */
"android": { "android" : {
"permissions": [ "permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>", "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
...@@ -50,28 +50,28 @@ ...@@ -50,28 +50,28 @@
] ]
}, },
/* ios打包配置 */ /* ios打包配置 */
"ios": {}, "ios" : {},
/* SDK配置 */ /* SDK配置 */
"sdkConfigs": {} "sdkConfigs" : {}
} }
}, },
/* 快应用特有相关 */ /* 快应用特有相关 */
"quickapp": {}, "quickapp" : {},
/* 小程序特有相关 */ /* 小程序特有相关 */
"mp-weixin": { "mp-weixin" : {
"appid": "", "appid" : "wx8fd4dc1c4b9f6f41",
"setting": { "setting" : {
"urlCheck": false "urlCheck" : false
}, },
"usingComponents": true "usingComponents" : true
}, },
"mp-alipay": { "mp-alipay" : {
"usingComponents": true "usingComponents" : true
}, },
"mp-baidu": { "mp-baidu" : {
"usingComponents": true "usingComponents" : true
}, },
"mp-toutiao": { "mp-toutiao" : {
"usingComponents": true "usingComponents" : true
} }
} }
\ No newline at end of file
<!--
* @Author: euzhi
* @Description: 登录
-->
<template> <template>
<view class="appCotent"> <view class="appCotent">
<div class="binding">
<div class="login__logo">
<image src="@/static/binding/logo.png"> <div class="binding">
</div> <div class="login__logo">
<div class="login__btn" @click="login"> <image src="@/static/binding/logo.png">
微信一键登录 </div>
</div> <!-- #ifdef MP-WEIXIN -->
<div class="login__read"> <!-- <view v-if="isCanUse">
<u-checkbox-group v-model="checked" placement="row"> <view>
<u-checkbox activeColor="ok"></u-checkbox> <button class="login__btn" hover-class="none" type='primary' @click="getUserProfile">
</u-checkbox-group> 微信一键登录
已阅读并同意 <span>《京东用户注册协议》</span><span>《京东隐私政策》</span>。若您的手机号未注册,将为您直接注册京东账号 </button>
</div> </view>
</div> </view> -->
</view> <view v-if="isCanUse2">
<view>
<button class="login__btn" hover-class="none" type='primary' open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
微信一键登录
</button>
</view>
</view>
<!-- #endif -->
<div class="login__read">
<u-checkbox-group v-model="nc_protocol" placement="row">
<u-checkbox activeColor="green"></u-checkbox>
</u-checkbox-group>
已阅读并同意 <span>《京东用户注册协议》</span><span>《京东隐私政策》</span>。若您的手机号未注册,将为您直接注册京东账号
</div>
</div>
</view>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
checked: [], code: "",
}; isCanUse: false, //默认为true
}, isCanUse2: false, //默认为true
methods: { openid: '',
login() { nc_protocol : false,
//跳转到绑定页面 }
uni.navigateTo({ },
url: '/pages/binding/binding' methods: {
}); //登录
} login() {
}, let _this = this;
uni.showLoading({
title: '登录中...'
})
},
//解析手机号
getPhoneNumber(e) {
let that = this
if (e.detail.errMsg == "getPhoneNumber:ok") {
that.decodePhoneLogin(e.detail)
} else {
console.log("用户点击了拒绝")
}
},
//解密手机号码
async decodePhoneLogin(detail) {
let encryptedData = detail.encryptedData
let iv = detail.iv
let that = this
let param = {
code: detail.code,
}
let opts = { url: '/xcx/login', method: 'post' }
await that.http.httpRequest(opts, param).then(res => {
if (res.data.code == 200) {
uni.showToast({
title:'授权成功',
duration:1500
})
uni.setStorageSync("userToken", res.data.data.token)
//跳转到绑定页面
this.gotoIndex()
} else {
uni.showToast({
title:'授权失败',
icon:'none',
})
}
})
},
gotoIndex() {
//跳转到绑定页面
uni.reLaunch({ //信息更新成功后跳转到小程序首页
url: '/pages/binding/binding'
})
// uni.navigateTo({
// url: '/pages/binding/binding'
// });
}
},
onLoad() { //默认加载
let userToken = uni.getStorageSync('userToken')
if (userToken) {
let that = this
let opts = { url: '/app/user/info', method: 'get' }
that.http.httpTokenRequest(opts, {}).then(res => {
if (res.data.code == 200) {
this.gotoIndex()
} else {
uni.showToast({
title:'授权失败',
icon:'none',
})
this.isCanUse2 = true
}
})
} else {
this.isCanUse2 = true
}
}
} }
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment