网站授权微信登录01--PC端

目录

## 前言

1.准备工作

1.1 网站域名

1.2 微信开放平台

2.授权授权登录开发

2.1 前端开发

2.1.1 发起授权登录跳转至扫码页面

2.1.2 扫码成功后回调处理

2.2 后端开发

2.2.1  根据code查询用户信息

2.2.2 自动注册登录

## 后记


## 前言

最近整了个AI助手网站,手机号注册登录时需要填手机号验证码什么的有点麻烦,于是考虑加个微信授权登录。PC端这里实现的效果是点击“微信登录”按钮,然后跳转扫码授权页面,打开手机微信扫码后自动登录网站。开发过程中踩了一些坑这里简单记录下:

1.准备工作

1.1 网站域名

需要有个外网可访问的已备案域名,在微信开放平台申请创建网站应用时使用。

1.2 微信开放平台

需要在微信开放平台注册账号,然后在管理中心-网站应用页面创建网站应用,这里需要填写自己网站的相关信息发起申请,一般1天左右会出结果是否通过。通过之后拿到AppID --前端跳转微信授权时用。

开放平台地址: 微信开放平台

2.授权授权登录开发

2.1 前端开发

2.1.1 发起授权登录跳转至扫码页面

微信登录按钮点击事件:

//微信登录
const wxLogin = function () {
  let protocol = window.location.protocol;
  let host = window.location.host;
  let redirect_uri = protocol + '//' + host + '/login'; //扫码后的回调地址
      let appId = 'xxxxx'; //开放平台AppID
    let wxUrlStart = 'https://open.weixin.qq.com/connect/qrconnect?appid=' + appId + '&redirect_uri=';
    let wxUrlEnd = '&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect';
    let allUrl = wxUrlStart + encodeURIComponent(redirect_uri) + wxUrlEnd;
    window.location.replace(allUrl);
}

2.1.2 扫码成功后回调处理

扫码成功后会自动跳转至自定义的回调地址redirect_uri,并带上开放平台返回的code,拿到这个code去后台查询用户信息进行后续自动注册登录操作。

//获取微信授权重定向后的code
  let code = getUrlParam('code');
  if (code) {
    //微信授权自动注册登录
       httpPost('/api/user/wxLogin', {code: code}).then((res) => {
      setUserToken(res.data)
      router.push('/chat')
   }).catch((e) => {
      ElMessage.error('登录失败,' + e.message)
    })
  } 

//页面重定向获取URL中参数值
const getUrlParam = function(queryName) {
    const queryString = window.location.search;
    const params = new URLSearchParams(queryString);
    const value = params.get(queryName);
    return value ? decodeURIComponent(value) : null;
}

2.2 后端开发

2.2.1  根据code查询用户信息

先拿code获取AccessToken,再拿AccessToken获取用户的openid、昵称等信息,其中openid是用户唯一标识,可以拿来注册登录用。

需要用到的接口地址:

获取AccessToken:https://api.weixin.qq.com/sns/oauth2/access_token

获取用户信息:https://api.weixin.qq.com/sns/userinfo

具体代码开发可参考官方接口文档:网站应用微信登录开发指南

2.2.2 自动注册登录

拿到用户openid后即可作为用户唯一标识进行注册登录操作。

## 后记

至此开发工作已完成,在域名对应的服务器上部署启动项目,测试功能OK即可。

最后提一下自己的小站(支持微信登录),提供了chatGPT等多种AI对话及MJ绘画功能。

体验地址:https://ai.xiaomaicoder.com/login,欢迎体验交流!

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持pc版、触屏版,自动、被动、无感知登录!!电脑版、触屏版同步登录 支持三方平台的多网页授权域名,一个公众号为多域名授权,一个公众号给多个网站使用。 可任意选两种流程:流程1:自动注册登录;流程2:注册时可以修改用户名、选择是否绑定。 微信秒登!支持电脑、手机触屏版微信登录网站。 无需绑定URL和Token,可以和任何DZ插件、模版兼容使用! 如站长没有认证服务号,请购买后与我们索取配置文档。 QQ秒登!免去完善信息的步骤。QQ登录网站,无需绑定已有账号!自动注册并登录。(此功能需要先开启QQ互联才可以) 可与其他pc模版、手机模版兼容一起使用。可替换手机版登录页面。 支持pc端自动/手动绑定,手机端自动/手动绑定。 无需申请QQ平台接入,零门槛。 QQ登录后可以自动获得:用户名、头像、生日、性别。微信登录可以得到微信名,头像等。 手机版登录页面:支持背景图(可随机),背景色,圆角,按钮颜色、文字,注册链接颜色、文字,透明度等。自动判断所处环境,展示不同的登录按钮。 本插件无需开通微社区。 预览地址:【西瓜】微信登录预览 小云APP打通版说明: 如未使用安米app/小云app请安装普通版本。 支持一个微信号登录电脑板、触屏版、小云app版,仅生成一个帐号,微信登录后是同一个帐号!完全互通。 在小云app使用微信登录的用户,用同样的微信号登录pc,触屏版,可以直接登录,不会生成新帐号。 在pc、触屏版使用微信登录的用户,用同样的微信号登录小云app,可以直接登录,不会生成新帐号。 精品应用推荐 【西瓜】积分充值 微信支付、支付宝支付 【西瓜】微信登录 微信登录、QQ登录 【西瓜】收费看贴 收费查看帖子,支持微信支付和支付宝,为论坛变现! 【西瓜】打赏商户版 站长可以拿提成的微信支付打赏 【西瓜】微信打赏 无需开通支付也可以现金打赏 【西瓜】微信版式 让手机版变成公众号的样子 【西瓜】积分商城 竞猜、竞拍、兑换、抽奖、任意购 【西瓜】微信投票 支持服务号、订阅号 【西瓜】发帖选板块 多样式选板块发帖 【西瓜】引导关注 引导关注、引导登录、引导下载APP 【西瓜】微社区认证 申请、展示认证 【西瓜】微社区活动 自动登录发布活动报名微活动 【西瓜】微社区 114 商家114加V创收利器 【西瓜】微社区门户 卡片式制作无限页面微社区门户 【西瓜】微社区文章 漂亮的文章页面,强大的分享、评论、页面展现 【西瓜】微社区美化 微社区必备美化 【西瓜】微首页聚合 微社区首页显示所有版块帖子 【西瓜】微社区导航 微社区33+6风格导航 【西瓜】微社区搜索 微社区搜索 【西瓜】微社区气泡 微社区发帖气泡 【西瓜】微社区会员 微社区修改用户名,资料 【西瓜】微社区广告 微社区10广告位利器 【西瓜】微社区签到 微社区动感签到 【西瓜】微社区 N格 微社区15栏目N格 【西瓜】微社区表态 微社区6风格表态 【西瓜】微社区版块 微社区清新版块|公告|热版 【西瓜】微社区分享 微社区社会化分享 【西瓜】微社区翻页 微社区6风格翻页上下篇内容美化
微信小程序登录和微信网页授权登录有以下区别: 1. 授权方式不同:微信小程序登录使用的是小程序端的 getPhoneNumber 接口进行授权,而微信网页授权登录使用的是网页端的 OAuth2.0 授权流程。 2. 获取手机号的方式不同:在微信小程序登录中,用户点击"允许"获取手机号的回调后,小程序端通过请求服务端的接口,将参数上传给服务端,服务端使用这些参数去获取 access_token,然后调用 getPhoneNumber 接口获取手机号并返回给小程序端。而在微信网页授权登录中,用户在网页端授权后,网页端直接获取用户的基本信息,包括手机号。 3. 参数传递方式不同:在微信小程序登录中,小程序端需要将 appid 和 secret 通过接口上传给服务端,服务端使用这些参数去获取 access_token。而在微信网页授权登录中,网页端直接使用自己的 appid 和 secret 进行授权。 总结来说,微信小程序登录和微信网页授权登录的区别在于授权方式、获取手机号的方式和参数传递方式的不同。 #### 引用[.reference_title] - *1* *2* *3* [微信小程序手机号授权登录](https://blog.csdn.net/Morris_/article/details/131238942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值