Rails GitHub 登录 OAuth 学习

bajiudongfeng · 发布于 2017年03月23日 · 最后由 bajiudongfeng 回复于 2017年03月24日 · 603 次阅读
14935
  1. 简介 维基百科

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

    OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

  2. 大致流程(以github为例)

    应用向github请求授权 github为用户显示一个授权页面,用户在此页面确认是否同意应用的请求 如果用户同意授权,应用会获取到一个访问令牌(access_token), 通过此令牌,应用可以访问授权用户的数据

  3. 详细流程 github 文档

    转发到授权页面的api

    GET https://github.com/login/oauth/authorize client_id 必须参数.

    如果用户同意授权,github就会转发到第三方网站,同时提供一个code 参数.
    第三方站点接着调用api

    POST https://github.com/login/oauth/access_token client_id 必须 client_secret 必须 code 必须 获得token,例如
    access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&scope=user%2Cgist&token_type=bearer

    访问资源

    GET https://api.github.com/user?access_token=...

  4. devise 集成文档

共收到 2 条回复
1704

不错,图很清晰

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册