1、有一个微信公众号,并获取到该公众号的AppID和AppSecret。
- 其中AppID是可以对外公开的,AppSecret是该公众号的密钥,是需要绝对保密的
2、向微信服务器发送一个GET请求,获取access_token和expires_in(凭证有效时间,单位:秒)。
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=AppID&secret=AppSecret
- 这个请求应该由自己的服务器发起,避免AppSecret的泄露
3、向微信服务器发送一个GET请求,获取jsapi_ticket和expires_in(凭证有效时间,单位:秒)
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=access_token&type=jsapi
- 这个请求应该由自己的服务器发起,避免access_token的泄露
4、把时间戳、随机数、jsapi_ticket和要访问的url按照签名算法拼接字符串和进行sha1加密获取签名,然后使用 appid、时间戳、随机数、签名 在前端进行注册
- 获取签名的过程在后端进行,避免 jsapi_ticket 的泄露
- 微信通过相同的算法获取签名,然后和前端传入签名进行比较,来判断是否合法身份。