临时登录凭证 code 能不能在登录之后的其他业务请求的请求头中传给后端服务
发布于 4 年前 作者 gongxia 4163 次浏览 来自 问答

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

临时登录凭证 code 只能使用一次

这个是指在这次登录的会话中只能使用一次?在此次会话中应该不限制吧,不然后面调用 auth.code2Session 接口的时候,要用到这个code怎么办

后端服务只有登录的时候才会从请求取到code,要想从登录后的业务请求中获取code,那前端必须把code放到业务请求头中了,每次发起请求头都需要带上code,这样跟【临时登录凭证 code 只能使用一次】有点冲突了,说的我有点懵!!!求大神解释;

按我的理解,有两种处理方式:

(1)每次会话期间, 前端把code放到业务请求头中发送给后端,后端校验的时候,调用 auth.code2Session 接口就能渠道code;

(2) 每次会话期间, 后端在每次登录成功后将临时code保存起来,后面每次收到前端的业务请求的时候,前端不用送code; 这种的后端需要在会话失效的时候主动去清除code;

2 回复

这个code 对微信来讲就只有auth.code2Session这一个用途,只能一次的意思是你调用了code2session 这个接口后,下次再用同样的code就失效了。

至于其他业务,对微信接口来讲也没其他的接口要用这个code了。至于你想传给后端,那是你自己定义的。和微信的接口没关系。

常规做法是:

wx.login 获取到code后,到服务器换取 user_id,并存到前端,前端用user_id作为用户的身份标识

1.能解决 code 的有效期时长

2.能解决每次wx.login 的时长损耗

3.如果对用户身份安全性要求高的接口,可以在传user_id在加上code

回到顶部