RocketChat的OAuth2授权模块的坑

问题分析和解决的过程

最近开发的OAuth2服务器包依赖于RocketChat的OAuth2的包,但是当浏览器带着token提交POST请求到服务器的时候却怎么样都无法获得。

查看源码得知RocketChat没有使用body-parser包。理论上来说由于RocketChat的OAuth2包依赖于Npm的oauth2-server包,也就依赖于express模块,没有用body-paser,也没有手动解析,是无法获取POST请求中的内容的,但是不知为何我之前有测试成功过一两次,而且之后怎么都重现不了。

没办法,只能解除对RocketChat的OAuth2模块的依赖,重写一遍相关逻辑。

没学过CoffeeScript重写相关逻辑确实有点尴尬,幸亏不多,几个关键的语法糖在CoffeeScript临时学一遍也照猫画虎实现了。

加入了body-parser的中间件以后问题解决。

参考

  1. charlesoy:oauthyc-server - Atmosphere
  2. rocketchat:oauth2-server - Atmosphere
  3. body-parser - Npm
  4. oauth2-server - Npm
  5. express - Npm