首先看下整个步聚.
1. 后台服务器引导用户请求微信服务器, 微信服务器响应在微信浏览器提示用户是否要授权.
2. 用户同意后微信服务器返回code.
3. 微信浏览器跟据重定向redirect_uri带上code请求后面服务器.
4. 后台服务器收后code后, 用code请求微信服务器.
5. 微信服务器返回access_token.
之后,后台服务器就可以用这个access_token在有效期内获取用户授权的信息. 这里的code只能用一次, access_token也有时间限制, 超时后就用不了, 但可以延长时间.
通俗的理解, 小明的相片存在Google云上, 想让相馆打印出来, 但是不能直接给帐号密码, 相馆便叫小明问Google云要一个code, 相馆拿到code后, 就向Google云申请一个access_token, 相馆通过access_token就可以获取到小明的相片了.
但为什么小明不直接向Google云申请access_token, 就这个例子来说也是可以的, 但从微信授权来说, 微信端浏览器直接获取access_token是不安全的, 容易被抓取, 所以重要的信息都不要暴漏在客户端.
参考
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025283&token=&lang=zh_CN