笔记:使用 Node.js 实现饭否.com 的 OAuth 1.0 授权


关于饭否 OAuth 1.0 登录授权

详情请参考 饭否API OAuth认证官方文档,做了张图

img

图中的绿色、橙色、蓝色,分别对应授权中的第一、第二、第三步,从上到下,依次进行。可以对照官方的说明参考:官方文档的说明:

  1. 获取未授权的Request Token
  2. 请求用户授权Request Token,有回调url和pin码两种返回形式。
  3. 使用授权后的Request Token换取Access Token
  4. 使用 Access Token 访问饭否API

Demo

Github 地址

使用的依赖

  • body-parser: ^1.14.1
  • express: ^4.13.3
  • jade: ^1.11.0
  • oauth: ^0.9.14
  • nunjucks: "^3.0.1
updated 2017-06-30,更新模版引擎为 Nunjucks

六月上旬还是五月下旬,经小伙伴提醒,原来 Jade 更名为 Pug;正好去年底开始接触使用 Nunjucks 来做一般项目的模版引擎,还挺喜欢,毕竟都是 HTML 标签的写法,这里先替换上。

顺带给 Express 里的 body-parser 加上了 extended: true,之前貌似是忘了,不会再报 body-parser deprecated undefined extended: provide extended option 的错了。

Demo 使用步骤

  1. 需要从「饭否开放平台」创建应用来获得运行 Node-Fanfou-OAuth 所必需的 app key 和 secret(AKA. consumer key 和 secret);点击「创建新应用」,填入一般信息(注:最后一项 Callback URL 在实际的授权过程中并非必须对应,在应用信息中填写的 Callback URL 可以与实际测试中的 Callback URL 不同)
  2. Demo 本身基于 Node.js 以及 Express 框架,如果没有 Node.js 部署在本机,请前往 nodejs.org 下载安装包进行安装,安装包一般都集成了 npm(用于 Node.js 包管理的工具);
  3. 安装项目相关依赖模块,打开系统 terminal,进入项目根目录,运行 npm install,等待片刻,npm 会按照 package.json 文件安装所依赖的模块;
  4. 根目录下打开 setting.default.js,填入在第一步中获得的饭否应用的 consumer key 以及 secret,保存,将文件重命名为 setting.js
  5. 在 terminal 中运行 node server.js,启动应用;
  6. 浏览器打开 http://localhost:3000/index,看到终端回馈 Basic Fanfou OAuth is now running on port 3000,Node-Fanfou-OAuth 便已经运行在本机。

效果预览:

感谢阅读

你们好, 2018 年初把小站从 Jekyll 迁移到 Hugo 的过程中,删除了评论区放的 Disqus 插件,考虑有二:首先无论评论、还是对笔记内容的进一步讨论,读者们更喜欢通过邮件、或者 Twitter 私信的方式来沟通;其次一年多以来 Disqus 后台能看到几乎都是垃圾留言(spam),所以这里直接贴一下邮件、以及 Twitter 账户 地址。

技术发展迭代很快,所以这些笔记内容也有类似新闻的时效性,不免有过时、或者错误的地方,欢迎指正 ^_^。

BEST
Lien(A.K.A 胡椒)
本站总访问量 本站总访客量 本文总阅读量