拥有OAuth标签的文章

最适合入门的Laravel中级教程(五)Passport OAuth认证

  • 白俊遥
  • 2019-05-26 15:56:09
  • PHP
  • OAuth
经过前面 的铺垫; 终于可以开始本篇 Laravel 教程了; 如果对 OAuth 和 JWT 还不是很了解; 建议先出门左转阅读上面链接中的系列文章; 我们先来回顾一下之前讲的 OAtuh 的四个角色;1. 资源服务器(resource server):github 服务器2. 授权服务器(authorization server):github 服务器3. 资源所有者(resource owner):用户你4. 客户端(client):第三方白俊遥博客
阅读全文

JWT(JSON Web Token)

之前的 中我们的目标都是获取 Token ; 那这个 Token 是个什么样的呢? RFC 并没有明确规定; 不过业内比较常见的方案是使用 JWT ; JWT 是 JSON Web Token 的缩写; 要学习 JWT 我们可以拿 session 作为参照物; 在传统开发中我们在用户登录后会创建一个 session 文件 xxx ; 用户的 id ...
阅读全文

OAuth 系列(六)对比总结

这个周日需要补节五一假期的班; 今个在上班没足够的时间写文章了; 写一篇总结文吧; 获取 access_token 的方式 授权码模式(Authorization Code):先用账号密码登录获取 code ;然后使用 code 获取 access_token ; 简化模式(也叫隐式授权)(Implicit): 使用账号密码直接在浏览器通过重定向获取 access_...
阅读全文

OAuth 系列(五)客户端模式 Client Credentials

前面讲的三种模式都是面向用户的; 获取的 access_token 都有对应的 user ; 今天要讲的客户端模式获取的 access_token 则没有对应的 user ; 和 相似的地方在于一般都是用于自己的应用; 不会给第三方开放客户端模式; 它的应用场景主要是机器或应用之间调用 api 访问数据; 和 相似的地方在于同样只有 access_token...
阅读全文

OAuth 系列(四)密码模式 Resource Owner Password Credentials

密码模式不同于前面讲过的 ; 前面的这两种模式中账号密码都是在授权服务器上输入的; 都有重定向跳转步骤; 客户端 Clinet 并不知道用户账号和密码; 而密码模式则需要 Clinet 使用账号密码来获取 Token ; 虽然 OAuth 协议要求 Clinet 禁止存储用户的账号密码; 但是大家并不能信任第三方的 Client; 因此密码模式一般用于自家...
阅读全文

OAuth 系列(三)简化模式 Implicit

简化模式 (Implicit) 也翻译做隐式模式或者紧凑模式; 简化模式的简化是相对于授权码模式来说的; 上篇文章 ; 我们讲过要获取 access_token 需要在 Client 服务器上发送 POST 请求; 但是在很多场景中我们可能没有服务器只有浏览器; 在远古时期还没有 CORS; 为了向这类场景妥协; 于是就有了简化授权; 在写本文的时候...
阅读全文

OAuth 系列(二)授权码模式 Authorization Code

授权码模式 (Authorization Code) 是最常见的 OAuth 授权类型; 它的流程相对于其他模式是最复杂也是最完善的; 我们这里还以 白俊遥博客 和 github 做示例; 拼接链接获取 code 需要拼接一个链接; 这个过程是在第三方客户端完成的即 白俊雅博客; 在白俊遥博客上有一个 github 登陆按钮; 放在按钮上我们可以...
阅读全文

OAuth 系列(一)序言

每项技术的诞生都是为了解决某个需求; 因此当我们学习技术的时候要搞清楚两个问题; 1. 这项技术解决的是什么问题2. 这项技术是怎么解决问题的本系列教程就是要对 OAuth 进行讲解; 我们先来回答上面第一个问题; 在互联网上有很多的应用; 这些应用是不同公司或个人开发的; 比如说 github 和 白俊遥博客 ; 很多时候多个应用之间的用户...
阅读全文

laravel passport加密jwt格式的access_token中的sub(user_id)字段

  • 白俊遥
  • 2019-01-06 22:35:49
  • PHP
  • OAuth
在很多需求我们不希望别人知道用户在我们表中的 user_id ;但是又想用数据库的自增 id 功能;一般时候在取出用户后加密 user_id 加密即可;但是总有那么几个不经意间就可能把我们的 user_id 暴露了;比如说 laravel 的 passport ;创建一个项目用于测试;```bashlaravel new passport``` 安装 ...
阅读全文