广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >小程序实现登录功能
  • 149
分享到

小程序实现登录功能

2024-04-02 19:04:59 149人浏览 八月长安
摘要

本文实例为大家分享了小程序实现登录功能的具体代码,供大家参考,具体内容如下 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。 1、

本文实例为大家分享了小程序实现登录功能的具体代码,供大家参考,具体内容如下

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。

1、前端调用wx.login获取code,再调用后端接口传递code

注意:code是临时的,只有5分钟的使用时间,而且只能使用一次

2、后端用获取的code与微信接口服务换取openid(用户唯一标识)与session_key(可以用于解密私密信息encrydata,现在只能获取头像和昵称),然后生成一个自定义登录状态的token,自定义登录态与openid和session_keysession关联。

注意:不可以把解析出来的openid和session_key直接返回给前端,会造成信息安全问题

3、将token返回给前端

4、前端缓存token

5、用户登录时,登录接口获取到token,再调用其他接口时,拦截器进行拦截,如果token有效,则放行请求;如果token失效(不存在、过期、格式不正确等原因),则无法访问该接口,需要重新登录。

说明:如果觉得token验证太过复杂,也可以退而求其次,采用微信小程序自带的wx.checkSeesion检查下发的session_key是否过期(固定为两天)。

wx.checkSeesion是前端检查,非常方便,但是缺点也很明显:耗时长,通常需要300+ms ,另外前后端传递私密数据时,需要额外考虑数据安全问题(以openid为例,前端每次需要传递openid时,都需要先获取临时code,再传递给后端,后端再用code换取openid,开销极大),因此正式开发时极不建议使用wx.checkSeesion,token验证方式可以较好解决上述问题。

核心代码:

// pages/my/my.js
Page({

    
    data: {
        loginOk: false,
        userInfo: null
    },

    
    onLoad: function (options) {
        //验证是否登录
        this.checklogin()
    },
    checklogin() {
        const token = wx.getStorageSync('token')
        const that = this
        if (token) {
            wx.request({
                url: 'Http://127.0.0.1:3000/checklogin',
                method: 'get',
                data:{
                    token:token
                },
                success(res) {
                    that.setData({ 
                        loginOk: res.data.is_login,
                        userInfo: res.data.userInfo
                     })
                }
            })
        } else {
            that.setData({ loginOk: false })
        }
    },
    login() {
        const that = this
        // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
        wx.getUserProfile({
            desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
            success(res){
                const userInfo = res.userInfo
                console.log(userInfo)
                // 登录
                wx.login({
                    success(res) {
                        if (res.code) {
                            //发起网络请求
                            wx.request({
                                url: 'http://127.0.0.1:3000/getSession',
                                method: 'post',
                                data: {
                                    code: res.code,
                                    userInfo:userInfo
                                },
                                success(res) {
                                    // 将token保存到数据缓存(下次打开小程序无需重新获取token)
                                    wx.setStorageSync('token', res.data.token)
                                    that.setData({ 
                                        loginOk: true,
                                        userInfo: userInfo
                                     })
                                }
                            })
                        }
                    }
                })
            }
        })
    },
    //退出登录
    exit() {
        wx.showModal({
            content: "确定退出吗"
        }).then(res => {
            if (res.confirm) {
                this.setData({
                    loginOk: false
                })
                //清空登录的缓存
                wx.removeStorageSync('token')
            } else if (res.cancel) {
                wx.showToast({
                  title: '取消',
                  icon:'error'
                })
            }
        })
    }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 小程序实现登录功能

本文链接: https://www.lsjlt.com/news/167163.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 小程序实现登录功能
    本文实例为大家分享了小程序实现登录功能的具体代码,供大家参考,具体内容如下 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。 1、...
    99+
    2022-11-13
  • php如何实现小程序登录功能
    本篇内容介绍了“php如何实现小程序登录功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RequestTask说明方法说明RequestT...
    99+
    2023-06-21
  • 简单实现小程序授权登录功能
           本人给大家带来了关于微信小程序的相关知识,其中主要介绍了怎么实现小程序授权登录功能的相关内容,下面一起来看一下,希望对大家有帮助。        在我们平时工作、学习、生活中,微信小程序已成为我们密不可分的一部分,我们仔细留意...
    99+
    2023-09-02
    小程序
  • 微信小程序怎样实现登录功能
    这篇文章主要介绍了微信小程序怎样实现登录功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序登录一. 小程序不支持cookie会话 ...
    99+
    2022-10-19
  • 如何实现小程序授权登录功能
    这篇文章主要介绍“如何实现小程序授权登录功能”,在日常操作中,相信很多人在如何实现小程序授权登录功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现小程序授权登录功能”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • 微信小程序授权登录功能如何实现
    这篇文章主要介绍“微信小程序授权登录功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序授权登录功能如何实现”文章能帮助大家解决问题。微信授权登录我们的项目开发有时候用到用户的一些信...
    99+
    2023-07-05
  • 微信小程序登录与注册功能的实现详解
    目录小程序中的登录用户注册用户信息修改总结小程序中的登录 在小程序中有一个概念叫openid,这个相当于登录小程序用户的唯一标识,每个微信用户都不同。那要如何拿到用户的唯一标识呢?在...
    99+
    2022-11-13
    微信小程序登录 微信小程序注册
  • 微信小程序实现录音Record功能
    本文实例为大家分享了微信小程序实现录音Record功能的具体代码,供大家参考,具体内容如下 布局 <!--pages/record/record.wxml--> &l...
    99+
    2022-11-12
  • uniapp开发小程序,实现获取【微信授权登录】功能
    APP微信授权登录需要到微信开放平台申请,在HBuilderX配置APP SDK中微信登录的appId,另外需要跟小程序、公众号授权账号互通的话也需要在微信开放平台申请 1、在微信公众平台申请应用,获取相应的appid和appsecret ...
    99+
    2023-09-28
    uni-app 小程序 微信
  • 如何基于uni-app实现微信小程序一键登录与退出登录功能
    目录起因总体思路详细流程总结起因 目前正在使用uni-app开发一个微信小程序,开发到登录模块时通过查阅uni-app官方教程、微信小程序官方文档、网上的教程终于是实现了微信小程序的...
    99+
    2022-11-13
  • 【微信授权登录】uniapp开发小程序,实现获取微信授权登录功能
    一、解题思路: 微信授权登录(获取用户信息) 1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。 2.拿着获取到的code去调用——登录接口,可以获取到token。 3.把token存入缓存。就可以在页面...
    99+
    2023-08-16
    小程序 微信 javascript
  • 微信小程序实现token登录
    微信小程序实现token登录 微信小程序登录流程 前端先调用wx.login()接口获取code,再把code发个后端 login() { wx.login({ success: (res)...
    99+
    2023-09-07
    微信小程序 小程序 java
  • 利用java实现一个微信小程序登录态维护功能
    利用java实现一个微信小程序登录态维护功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。作为服务端,如果想获得到使用微信小程序的会员信息,就需要小程序作为客户...
    99+
    2023-05-31
    微信小程序 ava java
  • 微信小程序实现音频录制功能
    微信小程序实现音频录制功能近年来,随着移动互联网的发展,微信小程序的普及越来越广泛。微信小程序作为一种轻量级、易于使用的应用,在帮助企业拓展市场和提升用户体验方面发挥着重要的作用。而在实现音频录制功能方面,微信小程序同样提供了简单易用的接口...
    99+
    2023-11-21
    微信小程序音频录制
  • 微信小程序如何实现录音Record功能
    这篇文章主要介绍了微信小程序如何实现录音Record功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下布局<!--pages/record/record.w...
    99+
    2023-06-14
  • 微信小程序实现一键登录
    本文实例为大家分享了微信小程序实现手机号登录的具体代码,供大家参考,具体内容如下 项目需求 点击按钮获取用户电话号码绑定到后台,登录。 实现思路 1、使用微信开放功能为获取用户手机...
    99+
    2022-11-13
  • 微信小程序如何实现登录
    这篇文章主要为大家展示了“微信小程序如何实现登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现登录”这篇文章吧。微信小程序 实现登录最近一段时...
    99+
    2022-10-19
  • 微信小程序实现登录界面
    微信小程序的登录界面实现,供大家参考,具体内容如下 <view class="container"> <view class="wrapper"> ...
    99+
    2022-11-12
  • Spring Boot实现微信小程序登录
    使用Spring Boot完成微信小程序登录 由于微信最近的版本更新,wx.getUserInfo()的这个接口即将失效,将用wx.getUserProfile()替换,所以近期我也...
    99+
    2022-11-12
  • 微信小程序实现登录页面
    本文实例为大家分享了微信小程序实现登录页面的具体代码,供大家参考,具体内容如下 实现在进入微信小程序首页前的登录验证页面,这里有两种方法,但其实原理都是一样的。 1. 在首页中加入一...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作