【Vue】纯前端实现微信 H5 鉴权

本文介绍了在Vue项目中实现微信H5鉴权的详细过程,包括获取code、ticketToken、签名的实现,并提供了完整代码示例。遵循微信开放文档,首先通过重定向获取code并缓存,然后调用接口获取access_token,接着进行签名计算,最后使用持久化存储方案保存信息。
摘要由CSDN通过智能技术生成

最近在做微信网页版开发,整理出微信 H5 鉴权常见坑位,流程图分析如下,后附简易代码实现
H5鉴权流程图

1. 获取code

逻辑实现:通过重定向授权从地址栏拿取 code 并缓存,不可重复调用,不然会报 code used
官方传送门 => 微信开放文档-网页授权

async getAccessToken(redirectUri) {
   
   const code  = $$.getQueryValue('code', redirectUri) || $$.getStore('code')

   if (code) {
   
     const $ticketToken = await $$.setStoreAsync('ticketToken', this.getTicketToken)
     $$.setStore('code', code, true).setStoreAsync('token', this.getAuthToken.bind(this, code))

     return Promise.resolve(this.getConfigInfo($ticketToken, redirectUri))
   } else {
   
     const url = ('https://open.weixin.qq.com/connect/oauth2/authorize?' + $$.serializeParams({
   
       appid,
       redirect_uri: encodeURIComponent(redirectUri),
       response_type: 'code',
       scope: 'snsapi_userinfo',
       state: '200'
     }) + '#wechat_redirect')

     return redirect(url)
   }
 }

2. 获取 ticketToken

逻辑实现:调用https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET, 获取 access_token 并缓存,实现signature 签名

官方传送门 => 微信开放文档-获取access_token

async getTicketToken() {
   
  const {
    access_token } = await get(prefix + '/cgi-bin/token'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值