在实现OAuth2.0协议时应该注意什么?

在实现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攻击。