|
|
@@ -0,0 +1,261 @@
|
|
|
+<template>
|
|
|
+ <view class="auth">
|
|
|
+
|
|
|
+ <image src="/static/logo.jpg" mode="aspectFill"></image>
|
|
|
+
|
|
|
+ <text class="margin-top-3 auth-title">欢迎使用农工笔记小程序</text>
|
|
|
+
|
|
|
+ <text class="margin-top-3 auth-content">此页面是微信授权页面,授权之后你可以获取更优质的服务,您的隐私将会受到保护</text>
|
|
|
+
|
|
|
+ <view class="margin-top-3">
|
|
|
+ <button type='default' class="refuse" @click="refuseBtn">暂不授权</button>
|
|
|
+ <button type='primary' class="allow" @click="getUserInfo()" v-if="!isAuth">登录授权</button>
|
|
|
+ <button type="primary" class="allow" open-type="getPhoneNumber" style="font-size: 12px;"
|
|
|
+ @getphonenumber="getPhoneNumber" v-if="isAuth && !isNeedPhone">手机号码授权</button>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import md5 from '@/common/md5.js';
|
|
|
+ export default {
|
|
|
+ data(){
|
|
|
+ return {
|
|
|
+ iv:'',
|
|
|
+ encryptedData:'',
|
|
|
+ isNeedPhone:getApp().globalData.user_phone,
|
|
|
+ isAuth:getApp().globalData.isAuth
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+ this.getUserInfoData()
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ getUserInfoData(){
|
|
|
+ let md5Sign = md5("method="+'user'+"×tamp="+getApp().globalData.globalTimestamp+"&secret="+getApp().globalData.secret)
|
|
|
+ let url = getApp().globalData.shareUrl+'api/api.php'+'?method=user&action=info_by_openid×tamp='+getApp().globalData.globalTimestamp +'&sign='+md5Sign
|
|
|
+ uni.request({
|
|
|
+ url:url,
|
|
|
+ method: 'POST',
|
|
|
+ header: {
|
|
|
+ 'content-type': 'application/x-www-form-urlencoded'
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ openId:getApp().globalData.open_id
|
|
|
+ },
|
|
|
+ success: (res) => {
|
|
|
+ if(res.data.code === 200){
|
|
|
+ if(res.data.data.nickname){
|
|
|
+ getApp().globalData.isAuth = true;
|
|
|
+ getApp().globalData.globalAuth = true;
|
|
|
+ getApp().globalData.user_phone = false;
|
|
|
+ getApp().globalData.user_name = res.data.data.nickname;
|
|
|
+ this.isAuth = true;
|
|
|
+ this.isNeedPhone = false;
|
|
|
+ }else{
|
|
|
+ getApp().globalData.user_name = '';
|
|
|
+ getApp().globalData.isAuth = false;
|
|
|
+ getApp().globalData.globalAuth = false;
|
|
|
+ this.isAuth = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: () => {
|
|
|
+ console.log("连接失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getUserInfo() {
|
|
|
+ uni.getUserProfile({
|
|
|
+ desc:'登录',
|
|
|
+ success:(res)=> {
|
|
|
+ getApp().globalData.user_headUrl = res.userInfo.avatarUrl;
|
|
|
+ getApp().globalData.user_name = res.userInfo.nickName;
|
|
|
+ this.iv = res.iv;
|
|
|
+ this.encryptedData = res.encryptedData;
|
|
|
+ this.isAuth = true;
|
|
|
+ getApp().globalData.isAuth = true;
|
|
|
+ getApp().globalData.globalAuth = true;
|
|
|
+ this.loginUserInfo()
|
|
|
+ },
|
|
|
+ fail:(err)=> {
|
|
|
+ getApp().globalData.isAuth = false;
|
|
|
+ getApp().globalData.globalAuth = false;
|
|
|
+ this.isAuth = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // if (e.detail.errMsg == "getUserInfo:ok") {
|
|
|
+ // getApp().globalData.user_headUrl = e.detail.userInfo.avatarUrl;
|
|
|
+ // getApp().globalData.user_name = e.detail.userInfo.nickName;
|
|
|
+ // this.iv = e.detail.iv;
|
|
|
+ // this.encryptedData = e.detail.encryptedData;
|
|
|
+ // console.log(e.detail)
|
|
|
+ // //this.loginUserInfo()
|
|
|
+ // } else {
|
|
|
+ // console.log("用户信息授权失败");
|
|
|
+ // getApp().globalData.isAuth = false;
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ getPhoneNumber(e){
|
|
|
+ let that = this;
|
|
|
+ if (e.detail.errMsg == 'getPhoneNumber:ok') { //允许授权执行跳转
|
|
|
+ console.log(e.detail)
|
|
|
+ that.phoneRequest(e.detail.iv, e.detail.encryptedData, getApp().globalData.session_key)
|
|
|
+ } else { //
|
|
|
+ that.isNeedPhone = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ phoneRequest(myIv,myEncryptedData,sKey){
|
|
|
+ let that = this;
|
|
|
+ let md5Sign = md5("method="+'user'+"×tamp="+getApp().globalData.globalTimestamp+"&secret="+getApp().globalData.secret)
|
|
|
+ let url = getApp().globalData.shareUrl+'api/api.php'+'?method=user&source=user&action=phone×tamp='+getApp().globalData.globalTimestamp +'&sign='+md5Sign
|
|
|
+ uni.request({
|
|
|
+ url:url,
|
|
|
+ method: 'POST',
|
|
|
+ header: {
|
|
|
+ 'content-type': 'application/x-www-form-urlencoded'
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ iv:myIv,
|
|
|
+ sessionKey:sKey,
|
|
|
+ encryptedData:myEncryptedData,
|
|
|
+ openId:getApp().globalData.open_id
|
|
|
+ },
|
|
|
+ success: (res) => {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data.code === 200){
|
|
|
+ getApp().globalData.user_phone = res.data.data;
|
|
|
+ setTimeout(()=>{
|
|
|
+ that.refuseBtn();
|
|
|
+ },300)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: () => {
|
|
|
+ console.log("连接失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ refuseBtn(){
|
|
|
+ uni.navigateBack({
|
|
|
+ });
|
|
|
+ },
|
|
|
+ loginUserInfo(){
|
|
|
+ let md5Sign = md5(
|
|
|
+ "method=" +
|
|
|
+ "user" +
|
|
|
+ "×tamp=" +
|
|
|
+ getApp().globalData.globalTimestamp +
|
|
|
+ "&secret=" +
|
|
|
+ getApp().globalData.secret
|
|
|
+ );
|
|
|
+ let url =
|
|
|
+ getApp().globalData.shareUrl +
|
|
|
+ "api/api.php" +
|
|
|
+ "?method=user&action=update×tamp=" +
|
|
|
+ getApp().globalData.globalTimestamp +
|
|
|
+ "&sign=" +
|
|
|
+ md5Sign;
|
|
|
+ uni.request({
|
|
|
+ url: url,
|
|
|
+ method: "POST",
|
|
|
+ header: {
|
|
|
+ "content-type": "application/x-www-form-urlencoded",
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ nickname:getApp().globalData.user_name,
|
|
|
+ headimg:getApp().globalData.user_headUrl,
|
|
|
+ openid:getApp().globalData.open_id
|
|
|
+ },
|
|
|
+ success: (res) => {
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: () => {
|
|
|
+ console.log("连接失败");
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+ .auth{
|
|
|
+ margin-top: 0;
|
|
|
+ text-align: center;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ padding: 100upx;
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
+ .auth image{
|
|
|
+ width: 200upx;
|
|
|
+ height: 200upx;
|
|
|
+ }
|
|
|
+ .auth view {
|
|
|
+ display: flex;
|
|
|
+ width: 490upx;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
+ .auth-title {
|
|
|
+ font-size: 32upx;
|
|
|
+ }
|
|
|
+ .auth-content {
|
|
|
+ font-size: 26upx;
|
|
|
+ color: #a7aaa9;
|
|
|
+ }
|
|
|
+ .allow {
|
|
|
+ background-color: #27BCEF;
|
|
|
+ margin: 20rpx 0 200rpx;
|
|
|
+ text-align: center;
|
|
|
+ vertical-align: middle;
|
|
|
+ touch-action: manipulation;
|
|
|
+ cursor: pointer;
|
|
|
+ background-image: none;
|
|
|
+ white-space: nowrap;
|
|
|
+ user-select: none;
|
|
|
+ font-size: 14px;
|
|
|
+ border: 0 !important;
|
|
|
+ position: relative;
|
|
|
+ text-decoration: none;
|
|
|
+ height: 44px;
|
|
|
+ width: 250rpx;
|
|
|
+ line-height: 44px;
|
|
|
+ box-shadow: inset 0 0 0 1px #27BCEF;
|
|
|
+ background: #fff !important;
|
|
|
+ color: #27BCEF !important;
|
|
|
+ display: inline-block;
|
|
|
+ border-radius: 10rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+ .refuse {
|
|
|
+ background-color: #19be6b;
|
|
|
+ margin: 20rpx 20rpx 200rpx 20rpx;
|
|
|
+ text-align: center;
|
|
|
+ vertical-align: middle;
|
|
|
+ touch-action: manipulation;
|
|
|
+ cursor: pointer;
|
|
|
+ background-image: none;
|
|
|
+ white-space: nowrap;
|
|
|
+ user-select: none;
|
|
|
+ font-size: 14px;
|
|
|
+ border: 0 !important;
|
|
|
+ position: relative;
|
|
|
+ text-decoration: none;
|
|
|
+ height: 44px;
|
|
|
+ width: 250rpx;
|
|
|
+ line-height: 44px;
|
|
|
+ box-shadow: inset 0 0 0 1px #8a8a8a;
|
|
|
+ background: #fff !important;
|
|
|
+ color: #8a8a8a !important;
|
|
|
+ display: inline-block;
|
|
|
+ border-radius: 10rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+ .margin-top-3{
|
|
|
+ margin-top: 10%;
|
|
|
+ }
|
|
|
+</style>
|