OAuth2.0常见问题
1. 在实现OAuth2.0协议时应该注意什么?
答:建议使用QQ互联提供的SDK。如果没有合适的语言版本,请注意server-side模式的Step1中的state参数的处理:
1.在发起授权流程生成state参数时,要保证随机生成,并且尽量避免重复。例如:state= MD5(时间戳+当前账号)。
2.生成后要和当前登录的用户进行绑定。这里建议两种实现方式:
1)把state放在用户的cookie中;
2)把state放在该用户在服务端的session里。
3.在Step1请求Authorization Code时必须传递state参数。
4.腾讯服务器在响应Step1的请求后,将重定向到开发者的服务器。此时开发者的服务器应检测state参数是否一致(即cookie或session里的state)。如果不一致,开发者的服务器应该拒绝此请求,并且不再发起换取access_token的请求。如果一致,则流程正常运行。
强烈建议开发者实现以上过程,以防止CSRF攻击。
2. access_token过期后怎么处理?
access_token过期调用接口时,平台会返回错误码为100014的错误,此时需要引导用户重新进行授权。建议在每次获得用户授权时保存过期时间,在每次调用接口前判断用户access_token是否过期。
token过期时间为60天。如果存储的access token过期,请重新走登录流程,通过Authentication_Code 获取新的access token值。
后续access_token后续会支持自动续期,请开发者继续关注。
如果有任何疑问请联系企业QQ:800030681。