OAuth2.0

帮你深入理解OAuth2.0协议

喜你入骨 提交于 2019-12-10 04:23:07
1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊车钥匙。当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理。与主钥匙相比,这种泊车钥匙的使用功能是受限制的:它只能启动发动机并让车行驶一段有限的距离,可以锁车,但无法打开后备箱,无法使用车内其他设备。这里就体现了一种简单的“开放授权”思想:通过一把泊车钥匙,车主便能将汽车的部分使用功能(如启动发动机、行驶一段有限的距离)授权给服务生。 授权是一个古老的概念,它是一个多用户系统必须支持的功能特性。比如,Alice和Bob都是Google的用户,那么Alice应该可以将自己的照片授权给Bob访问。但请注意到,这种授权是一种封闭授权,它只支持系统内部用户之间的相互授权,而不能支持与其他外部系统或用户之间的授权。比如说,Alice想使用“网易印像服务”将她的部分照片冲印出来,她怎么能做到呢? 肯定有人会说,Alice可以将自己的Google用户名和密码告诉网易印像服务,事情不就解决了吗?是的,但只有毫不关注安全和隐私的同学才会出此“绝招”。那么我们就来想一想,这一“绝招”存在哪些问题?(1) 网易印像服务可能会缓存Alice的用户名和密码,而且可能没有加密保护。它一旦遭到攻击

OAuth2.0---Oltu理解

纵然是瞬间 提交于 2019-12-10 03:48:52
##OAuth2.0---Oltu ##请求流程 ###Step1:获取Authorization Code,授权界面 grant_type 授权类型authorization_code redirect_uri 回调路径 scope 授权范围 state 客户端状态值 返回的授权auth_code和原始状态值state ###Step2:通过Authorization Code获取Access Token grant_type 请求授权类型access_token client_id 用户授权成功之后回调redirect_uri 返回的auth_code client_secret 分配给第三方应用的code auth_code 请求授权时客户端请求过来的 redirect_uri 返回的是access_token和有效期expires_in和refresh_token刷新 ###Step3:权限自动续期,refresh access_token grant_type 授权类型refresh_token client_id client_secret refresh_token 返回的新的access_token和新的refresh access_token ###Step4:使用Access Token来访问和修改数据 access_token op 对应操作 参考文档:

Laravel 5.1 + OAuth2 PasswordGrant(密码授权模式)

余生颓废 提交于 2019-12-02 06:53:00
背景简述 本文意在搭建一个通用的应用后端服务环境, 账号验证是应用的基础环境之一. OAuth2可提供安全的验证环境, 以access_token作为访问安全资源的令牌, 作为单一的应用端与后端的交互方式, 采用password类型会更简洁一点, 若是要实现类似Google, Facebook或新浪微博的第三方登录平台模式, 请选用Authorisation code grant. OAuth类型参考说明: https://github.com/lucadegasperi/oauth2-server-laravel/wiki/Choosing-a-Grant 本文选用的OAuth2授权方式为: password, 需搭配 refresh_token使用, 在access_token过期后, 使用refresh_token申请新的access_token, 无需重新登录, 达到应用端登录一次,一直有效的效果. 若 refresh_token失效, 则需用户重新登录, 这对对应着用户长期没有使用应用, 需让用户重新登录授权的场景. 一般时间可以设成一个月, 根据实际需求设置. 环境: Laravel 5.1 安装请参考博文: http://my.oschina.net/u/2485194/blog/518803 专为Laravel定制的OAuth2实现 oauth2-server