Rails 应用开发笔记(十三)

使用 StackOverflow 帐户登录应用和之前 GitHub 帐户登录应用的原理几乎是一模一样的,代码几乎可以重用,本来无需单独做介绍,但是还是遇到一些问题,花了些时间去排查,还是觉得有必要写下来。个人一开始认为 StackOverflow 应该是属于技术比较牛逼的网站,文档应该比较详尽,至少会有几个语言的示例,但是结果相反,API文档写的比较简略,也没有什么示例,某些内容还没怎么看懂,还好原理和接入 GitHub 是一样的,省了很多时间。

Authentication 这一块的文档比较简略,但是条例很清楚,按着它的流程走很容易实现,但是需要注意的是:

  1. StackOverflow 的用户认证都是基于 OAuth 2.0 实现的,它提供了两个认证流程,一个是针对服务端应用的The explicit OAuth 2.0,一个是针对客户端应用的The implicit OAuth 2.0,二者流程不一样,很显然 Rails 应用要使用针对服务端应用的流程。

  2. StackOverflow 的邮箱信息是私有的,并不对外开放,因此无法通过它的API获取用户的邮箱

  3. 需要注册应用,有几个地方需要注意:如果是在本地测试,OAuth Domain 这一栏需要填域名,而不能是 IP 或者 localhost,可以更改 host 文件指定你想要的域名,比如 rails.example.com;Application Website 这栏需要填写完整的 url,包括协议和端口,比如http://rails.example.com:3000;如果是服务端应用,不要勾选Enable Client Side OAuth Flow

  1. 应用注册记录的地址是http://stackapps.com/apps/oauth/view/#{client_id}(注册页面关闭后,死活没找到注册记录在哪里,只有翻网页历史纪录,不得不说 StackOverflow 这个设计真坑爹!)

注意到这几个方面以后,接入 StackOverflow 帐户登录应用的流程就很简单了,可以参照文档,这里就不细说了。

Authentication API

OAuth 2.0 介绍

2019

代码整洁之道——程序员的职业素养

少于 1 分钟读完

很难想象我在读这本书的时候是除夕的晚上,早晨在公司的书架上无疑翻到这本书,读了几个章节就被深深的吸引住了, 吸引我的并不是我很迫切的需要提高自己的职业素养,而是发现作者描述的场景和自己碰到的情况何其的相似,在某些 情况下甚至是直击内心的。在家人都休息的时候,我在深夜一点钟看完了这本书,而且我觉得有必要做一下笔记,...

解决 nginx 错误:413 Request Entity Too Large

1 分钟读完

最近项目上遇到一个问题,某个 http 请求会返回 413 的状态码,一般来讲,这个问题是很好解决的, 网上有非常多的解决方案,但是我依然花了很长的时间找到问题根源,所以我觉得可以把这个过程记录下来。

Back to Top ↑

2018

Back to Top ↑

2017

Back to Top ↑

2016

Back to Top ↑

2015

Back to Top ↑

2014

Back to Top ↑