微信小程序目前最新的授权登录接口-2021年10月份

article/2025/5/15 20:35:19

微信小程序目前最新的授权登录接口-2021年10月份

效果图:

小程序授权登录效果图
说明:首先我们需要在app.js里用云函数获取到openid,然后在用户点击登录的时候用获取到的openid去用户表里查询是否有该用户,如果没有就把用户信息写入数据库里的用户表,再登录;如果有就直接登录;

直接上代码!

mypage.wxml代码:
<!--pages/mypage/mypage.wxml-->
<!-- 背景图 -->
<view class="bg-box"><image src="../image/mypagebg.png"></image>
</view><!-- 未登录 -->
<view wx:if="{{!UserLogin}}" class="login_box" bindtap="getUserProfile"><view class="userlogin"><view>点击登录</view><view style="font-size: 12px; color:grey;margin-top: 5px;">需要先完成授权登录才能使用服务哟(*v*)</view></view>
</view><!-- 已登录 -->
<view wx:else class="login_box"><view class="userAvatar_box" bindtap="secretEntrance"><image src="{{userInfo.avatarUrl}}"></image></view><view class="userlogin"><view style="font-weight:bold;">欢迎:{{userInfo.nickName}}</view><view><text style="font-size: 10px; color: gray;">微信用户</text></view><view><text style="font-size: 10px; color: red;">Lv:</text><text style="font-size: 10px; color: orange;">{{Lv}}</text></view></view>
</view><!-- 服务 -->
<view class="service_box"><view class="service_title">服务</view><view class="service_row" bindtap="goMycollection"><view class="service_icon"><image src="../image/mycollection.png"></image></view><view class="service_text">我的收藏</view></view><view class="service_row"><view class="service_icon "><image src="../image/kefu.png"></image></view><view class="service_text"><button open-type='contact' style="color:black;height:35px;line-height:35px;font-weight: lighter;padding:0;width:100%;border:none;background:#fff;font-size:14px;text-align:left;">在线客服</button></view></view><view  class="service_row" bindtap="exit"><view class="service_icon"><image src="../image/exit.png"></image></view><view class="service_text">退出登录</view></view>
</view>
mypage.js代码:
// pages/mypage/mypage.js
var app = getApp();
const db = wx.cloud.database()
const {formatTime
} = require("../../utils/util.js")
Page({/*** 页面的初始数据*/data: {UserLogin: false,userInfo: null,Lv: '1'},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {app.isLogin() // 全局变量this.setData({UserLogin: app.globalData.UserLogin,userInfo: app.globalData.userInfo})},//获取用户信息getUserProfile() {let openId = app.globalData.openid//console.log('全局的openid', openId)wx.getUserProfile({desc: '用于完善会员资料', //声明获取用户信息的用途success: (res) => {//console.log('点击获取用户信息成功', res.userInfo)let userInfo = res.userInfodb.collection('UserList').where({'_openid': openId}).get({success: res => {console.log('根据全局openid查询用户表成功', res.data)if (res.errMsg == "collection.get:ok" && res.data.length == 0) { //length等于0,证明没有该用户,走写入数据库//console.log('走if-1,开始写入数据库')db.collection('UserList') // 把用户信息写入数据库的用户表.add({data: {avatarUrl: userInfo.avatarUrl,nickName: userInfo.nickName,mamager: false,vip: false,Lv: 1,registerTime: formatTime(new Date())},success: res => {//console.log('写入成功', res.errMsg)if (res.errMsg == "collection.add:ok") {wx.setStorageSync('UserInfo', userInfo) //保存用户信息保存到本地缓存this.setData({userInfo: userInfo,UserLogin: true,Lv: "1"})wx.showToast({title: '恭喜,登录成功',icon: "success",duration: 1000,})} else {// 提示网络错误wx.showToast({title: '登录失败,请检查网络后重试!',icon: 'none',duration: 1000,})}},fail: err => {console.log('用户信息写入失败', err)// 提示网络错误wx.showToast({title: '登录失败,请检查网络后重试!',icon: 'none',duration: 1000,})}})} else {//console.log('走else-1,数据库里已存有用户信息,直接登录,不用写入数据库')wx.setStorageSync('UserInfo', userInfo) //保存用户信息保存到本地缓存this.setData({userInfo: userInfo,UserLogin: true,Lv: res.data[0].Lv})//更新全局状态app.globalData({userInfo: userInfo,UserLogin: true,})}},fail: err => {console.log('根据全局openid查询用户表失败', err)// 提示网络错误wx.showToast({title: '网络错误!获取授权信息失败',icon: 'none',duration: 1000,})}})},fail: err => {console.log('用户信息获取失败', err)// 提示网络错误wx.showToast({title: '网络错误!获取授权信息失败',icon: 'none',duration: 1000,})}})},// 跳转到我的收藏goMycollection() {let UserLogin = this.data.UserLoginif (UserLogin) {wx.navigateTo({url: '../collection/collection',})} else {// 提示登录wx.showToast({title: '你还未登录,请先登录!',icon: 'none',duration: 1000,})}},// 清除数据退出exit() {let UserLogin = this.data.UserLoginif (UserLogin) {wx.showToast({title: '退出成功',icon:'success',duration: 1000,})this.setData({UserLogin: false,})wx.removeStorageSync('UserInfo')} else {// 提示登录wx.showToast({title: '你还未登录,请先登录!',icon: 'none',duration: 1000,})}},
})
util.js
const formatTime = date => {const year = date.getFullYear()const month = date.getMonth() + 1const day = date.getDate()const hour = date.getHours()const minute = date.getMinutes()const second = date.getSeconds()return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
const formatNumber = n => {n = n.toString()return n[1] ? n : '0' + n
}module.exports = {formatTime: formatTime
}
app.js代码:
//app.js
App({onLaunch: function () {// 初始化云开发环境if (!wx.cloud) {//console.error('请使用 2.2.3 或以上的基础库以使用云能力')} else {wx.cloud.init({env: 'cloud1-3gklfre2aef67472',//云环境IDtraceUser: true,})}this.getOpenid();},globalData: {userInfo: null,UserLogin: false,openid:null,},// 获取用户openidgetOpenid: function () {var app = this;var openId = wx.getStorageSync('openId');if (openId) {//console.log('本地获取openid:', openId);app.globalData.openid = openId;app.isLogin();} else {wx.cloud.callFunction({name: 'getOpenid',success(res) {//console.log('云函数获取openid成功', res.result.openid)var openId = res.result.openid;wx.setStorageSync('openId', openId)app.globalData.openid = openId;app.isLogin();},fail(res) {console.log('云函数获取openid失败', res)}})}},//检测是否登录函数,未登录则提示登录isLogin() {//console.log('app.isLogin方法被执行了')var userInfo = wx.getStorageSync('UserInfo') // 获取缓存的用户信息if (userInfo.nickName && userInfo.avatarUrl) {this.globalData.UserLogin = truethis.globalData.userInfo = userInfo} else {this.globalData.UserLogin = false}},})
mypage.wxss代码:
/* pages/mypage/mypage.wxss *//* 背景图 */
.bg-box {width: 100%;height: 300rpx;z-index: 1;
}.bg-box image {z-index: 1;width: 100%;height: 100%;
}/* 登录 */
.login_box {height: 200rpx;margin: 10rpx 18rpx;border-radius: 16rpx;background-color: #fff;box-shadow: 20rpx 20rpx 10rpx rgba(39, 48, 57, 0.05);
}.userlogin {height: 100%;margin-left: 40rpx;float: left;display: flex;flex-direction: column;justify-content: center;
}.userAvatar_box {width: 150rpx;height: 150rpx;margin-top: 40rpx;margin-left: 20rpx;border-radius: 10rpx;overflow: hidden;float: left;
}.userAvatar_box image {width: 100%;height: 100%;
}/* 服务 */
.service_box {position: relative;margin: 10rpx 18rpx;border-radius: 16rpx;background-color: #fff;box-shadow: 20rpx 20rpx 10rpx rgba(39, 48, 57, 0.05);
}.service_title {height: 60rpx;line-height: 60rpx;padding-left: 10rpx;font-size: 16px;font-weight: bold;
}.service_row {height: 70rpx;margin-top: 16rpx;border-bottom: 2rpx #f0f0f0 solid;
}.service_icon {width: 50rpx;height: 50rpx;margin-left: 20rpx;margin-top: 10rpx;float: left;
}.service_icon image {width: 50rpx;height: 50rpx;
}.service_text {font-size: 14px;height: 70rpx;line-height: 70rpx;margin-left: 100rpx;
}

微信小程序授权登录视频教程
如果对你有用,别忘了一键三连呀


http://chatgpt.dhexx.cn/article/MUaevai3.shtml

相关文章

chatgpt帮我写的一个小程序气泡框代码

效果图 这是一个气泡框 .bubble { position: relative; padding: 10px; border-radius: 8px; background-color: #ddd; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .triangle { position: absolute; width: 0; height: 0; top: -10px; left: 50%; margin-left: -10px; bor…

ChatGPT体验地址,超多功能,附公众号源码

GPT 说明效果演示地址体验公众号源码 说明 ChatGPT是一种基于深度学习的自然语言处理&#xff08;NLP&#xff09;技术&#xff0c;它可以实现自然的文字对话。ChatGPT是基于预训练的语言模型&#xff0c;使用大量的数据和计算资源进行训练&#xff0c;使其能够理解和生成自然…

微信4.11小程序新规后,怎么将小程序转成普通网址链接?

微信4.11小程序新规后&#xff0c;怎么将小程序转成普通网址链接&#xff1f;改了规则后&#xff0c;一个用户只能访问一个url&#xff0c;原来的方法基本都失效了&#xff0c;有开发能力的&#xff0c;可以基于开放接口处理&#xff0c;没有很强开发能力&#xff0c;只能借助于…

chatgpt写微信小程序

作为微信小程序开发者&#xff0c;您的任务是使用微信小程序原生开发&#xff0c;编写一个计数器页面&#xff0c;请回复满足以下要求的代码: 创建一个包含wxml、js、wxss和json文件的微信小程序页面&#xff0c;并在其中实现一个计数器页面。视图中显示的文本应为中文。请注意…

微信小程序 |做一款跟ChatGPT下五指棋的小程序

一、写在前面 敢问世间万物,何以解忧? 时下最为火爆的ChatGPT想必够资格来回答一下这个问题。 要想当年AlphaGO打败世界围棋高手李世石,就展露出AI的惊人实力,时隔多年,AI领域在憋了这么多年之后,现如今,ChatGPT 4大杀四方,各行各业无不为之震撼! 借用刚召开的新程…

借助ChatGPT编写html小程序

在数值模拟过程中&#xff0c;经常需要反复计算一些参数&#xff0c;例如常见的无量纲参数雷诺数和瑞利数等 它们的表达式如下&#xff1a; R a g β Δ T H 3 P r ν 2 Ra \frac{g \beta \Delta T H^3Pr}{\nu^2} Raν2gβΔTH3Pr​ 为了确定这个参数&#xff0c;需要给定 g…

微信小程序| AIGC之动手实现ChatGPT法律顾问小程序

一、需求背景 在资本退去后,现如今的互联网行情很差劲,很多创新业务都不得不砍除。再加上国内互联网时代进入到了一个增量犹显疲态,增量杀红了眼!阶段,各大互联网公司均有一种断臂求生的态势!各位互联网同行,大力发展第二职业已然变成了必要的生产力! 我们既要辩证的…

调用chatGPT制作小程序的小程序,所以程序员都能用上chatGPT

废话不多少&#xff0c;直接上案例。下面给让我为大家演示一下ChatGPT生成的React框架的前端代码: import React, { useState } from react; import axios from axios;const ChatApp () > {const [inputText, setInputText] useState();const [outputText, setOutputText…

微信已限制 ChatGPT 小程序,目前已搜索不到相关内容

12 月 15 日消息&#xff0c;最近聊天机器人 ChatGPT 非常火&#xff0c;ChatGPT 不仅能流畅地与人对话&#xff0c;还能写代码、找 Bug、做海报、写年报…… 甚至还以鲁迅的文风进行天马行空的创作&#xff0c;几乎无所不能。 ChatGPT 走红后&#xff0c;微信上也出现了很多相…

ChatGPT小程序系统:专为创作者设计的人工智能助手

在数字时代&#xff0c;有越来越多的创作者希望利用人工智能技术提高自己的创作效率和质量。作为一款大型语言模型&#xff0c;ChatGPT在自然语言处理领域具有出色的表现&#xff0c;不仅可以辅助创作者进行创作&#xff0c;还提供全方位的智能支持。为了更好地帮助创作者提高创…

元AI ChatGPT系统4.0.0独立开源版 + H5端+小程序安装配置教程

元AI系统是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。本期针对源码系统整体测试下来非常完美&#xff0c;可以说元AI是目前国内最好的一款的ChatGPT对接OpenAI 软件系统。测试了下相比上3.0.0版回答更精准&#xff0c;修复了很多BUG&#xff0c;包括新增了H5功能。当然…

微信小程序 | 借ChatGPT之手重构社交聊天小程序

一、 ChatGPT效果分析 体验过ChatGPT这一产品的小伙伴对于GPT模型的恢复效果不知道有没有一种让人感觉到真的在和真人交流的感觉。不管你的问题有多么的刁钻,它总是能以一种宠辱不惊的状态回复你。 但是对于一些很无理的要求,它有的时候也是很果断的😂 没有体验过的小伙…

2023 ChatGPT小程序H5端源码 智思AI助手v2.0.3 去授权版+搭建教程

ChatGPT小程序和H5端源码&#xff0c;智思AI助手2.0.3去授权版。一个强大的系统&#xff0c;支持Web、H5和小程序进行数据互通。该源码提供多项功能&#xff0c;包括后台功能开通、AI自由对话、文本创作、角色模拟、充值套餐和卡密兑换。一、需要准备什么资料&#xff1f;1.国内…

ChatGPT智能AI机器人微信小程序源码_带部署教程

ChatGPT智能AI机器人微信小程序源码_带部署教程下载&#xff1a;https://download.csdn.net/download/qq_45102995/87769902最近ChatGPT智能AI聊天突然爆火了 ChatGPT 是 OpenAI 开发的一款专门从事对话的人工智能聊天机器人原型。 聊天机器人是一种大型语言模型&#xff0c;采…

用ChatGPT通过WebSocket开发一个交互性的五子棋微信小程序(二)

文章目录 1 前言1.1 实现的原理1.2 如何与微信小程序联系 2 五子棋项目2.1 申请OpenAI的API2.2 调用API代码2.3 界面代码 3 同步五子棋到前端小程序3.1 WebSocket长连接3.2 获取实时下棋 4 讨论 1 前言 1.1 实现的原理 大体方向是将ChatGPT作为后端语言模型&#xff0c;然后将…

我用ChatGPT开发一个小程序赚到第一桶金

ChatGPT是OpenAI基于GPT-3.5架构训练出来的一个大型语言模型&#xff0c;其拥有广泛的使用者群体。随着机器学习技术的不断进步&#xff0c;ChatGPT在人工智能应用领域中的应用越来越广泛。 ChatGPT被广泛应用于智能客服领域&#xff0c;因为它可以帮助企业提高客户满意度和快…

2023全新ChatGPT3.5小程序开源源码 全新UI 全网首发

2023全新ChatGPT3.5小程序开源源码 全新UI 全网首发 这一版本ui比较好看 回复速度也快了 小程序是java的 带后台 本来准备给你们带上接口的然后么后台是和接口连接的 几十块钱&#xff01; 而且最近openkey 封号比较频繁所以大家自己弄下&#xff01; 小程序需配合java…

马斯克儿子被跟踪/ ChatGPT小程序遭封杀/ 特斯拉市值“腰斩”…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好&#xff0c;今天是12月16日星期五&#xff0c;明天就是周末啦&#xff5e; 快来和日报君康康&#xff0c;今天科技圈有哪些新鲜事。 马斯克儿子被跟踪&#xff0c;推特取消共享位置 马斯克在最新一条推特中表示&#xff0c;载…

全网首发2023全新ChatGPT3.5小程序开源源码 全新UI

源码简介&#xff1a; 2023全新ChatGPT3.5小程序开源源码 全新UI 全网首发 这一版本ui比较好看 回复速度也快了 小程序是java的 带后台 本来准备给你们带上接口的然后么后台是和接口连接的 我改什么内容你们前段都会显示所以全开源 自己搭建下吧&#xff0c;腾讯云买个国外服…

ChatGPT之小程序开发

写一个能够使用ChatGPT的微信小程序需要什么呢&#xff1f; 列出项目目录 components dialogue 是否能完成一个微信小程序项目呢&#xff1f; 投票 说说各位的看法&#xff1a;