微信网页授权拿到的access_token 拿去换取用户信息 5C

首先回调到个人页面 我现在是直接把access_token带给了前端然后让他带回拿用户信息
现在想存在服务端 但是貌似每次请求的access_token我存起来40001

qq_37560580
qq_37560580 回复ctqshwsz: 网页 授权的直接拿到openid和access_token 这个access_token 能否储存起来 因为我存起来是没用的
大约一年之前 回复
ctqshwsz
Giroc 请把问题描述清楚
大约一年之前 回复

4个回答

1.首先服务器是有定时任务的,每一小时更新一次access_token

2.有了第一步之后理论上不会出现40001错误了,为了防止此问题出现当请求返回40001后重复请求3次

3.请求3次后,如果还有此问题出现(几率已经很小了,不过为了保证准确性),把此信息存入到一个记录token失效错误的日志表中,定时的去处理这个表中的数据。

亲测10万用户,在经过第二步之后半月内只有几十条token失效的日志,在定时处理后,再没出现过问题。

将access_token存在redis中,存储时加上过期时间,取之前判断是否过期,未过期则用,已过期则无重新拉取
public string GetAccessTokenRedis(string AppId)
{
if (redis.HashExists("weixin_access_token", AppId))
{
var gettoken = redis.HashGet("weixin_access_token", AppId);
if (gettoken != null && gettoken.value!=null)
{
if (DateTime.Now < gettoken.expires)
{
return gettoken.value; /**存在未超时输出**/
}
}
}
string token = access_token();
if (token != null && !token.Trim().Equals(""))
{
DateTime _accessExpires = DateTime.Now.AddSeconds(7100);
redis.HashSet("weixin_access_token", AppId, new RedisWeiXinToken { value = token, expires = _accessExpires });
}
else {
AllFunction._Error.WriteOfWeb("AppId="+ AppId+ ",获取access_token失败");
token = String.Empty;
}
return token;
}

2、获取用户信息你这没有描述清楚,分二种情况
(1)你已经拿到用户的openid,则调用接口去获得用户基础信息(即头像、昵称这些)
string Str = GetJson(String.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}",access_token,openid));
(2)未拿到用户openid则需要用户扫码或者是点开在手机微信中网页,使用微信网页授权去获得
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

qq_37560580
qq_37560580 因为网页授权时可以同时拿到openid 和access_token 这样是代表我无法存这个token值
大约一年之前 回复

由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器 如果我存在redis中是不是每个用户请求一次 他重新生成一次access_token 但是我后续的业务要用到这个access-token我是直接给前端了

xjc04001
彩虹 不需要,access_token是针对公众号的,一个access_token在有效时间内可以应用于公众号下所有用户;
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
python获取微博接口发微博出现403禁止访问的情况
2
微信公众号支付appid and openid not match。
2
请大神帮忙解释下微信接口的这句话 (使用C#语言 jquery ajax请求)
0
按照微信提供的JSSDK接口 拉取用户卡券列表 失败 求助
2
微信通过公众号token获取用户信息时报token过期
2
微信授权登陆,这个回调地址是手机端调用,还是页面调用?
1
如何将face_token转化为图片进行输出
1
企业QQ:返回code参数非法,无法使用员工号的授权code,获取企业company_token
1
微信静默授权、非静默授权 都能获得unionid 两者有什么区别?
2
录音生成录音生成后,调用微信AI开放接口中的语音识别功能后,调用微信AI开放接口中的语音识别功能
0
android端或ios端获取到oauth2的token以后怎么携带?
1
微信公众号在获取用户信息和access_token那里老是获取不到,有大佬知道这个是什么原因造成的吗?
1
微信公众号数据存储问题
3
微信公众号开发自定义菜单代码是用什么语言。
2
oauth2之微信授权登录
1
springcloud oauth2 微服务之间同feign调用,产生invalid_token
2
【求助】微信公众号开发图像处理接口是否还可用?
1
java授权登录后如何返回用户信息给前端?
1
微信小程序request里面怎么传token才能被Python HTTPBasicAuth捕获到
2
【已解决】小程序前端生成二维码是base64转图片后页面不显示