Oauth2.0 授权访问之 授权码模式(authorization_code)访问

    第一步, 申请授权码

   

    第二步, 请求连接,获取code

http://localhost:8080/oauth/authorize?
 response_type=code
 &client_id=pair
 &redirect_uri=http://baidu.com

如果没有登录, 会首先重定向到登录页面

70

   

    第三步, 授权(authrization)

    确保用户是已经登陆的情况,在浏览器中输入和步骤1一样的地址( 注意是get请求 )

http://localhost:8080/oauth/authorize?
 response_type=code
 &client_id=pair
 &redirect_uri=http://baidu.com

此时会出现让用户授权的页面:

70

如果拒绝,则会重定向到redirect_uri的地址:

如果同意授权,跳转到redirect_uri地址,并且在uri后面追加返回的code,

https://www.baidu.com/?code=o4YrCS:

 

    第四步, 根据 code 获取 access_token

    通过 postman 发送 post 请求,grant_type为authorization_code, code为上一步拿到的参数 ,请求url如下:

http://localhost:8080/oauth/token?
 grant_type=authorization_code
 &code=o4YrCS
 &client_id=pair
 &client_secret=secret
 &redirect_uri=http://baidu.com

70

返回access_token格式

{
    "access_token": "a8ae6a78-289d-4594-a421-9b56aa8f7213",
    "token_type": "bearer",
    "expires_in": 1999,
    "scope": "read write trust"
}

 

    第五步, 根据 access_token 获取资源

http://localhost:8080/rest/api/ping?
 access_token=a8ae6a78-289d-4594-a421-9b56aa8f7213

返回资源结果:

{
    "key": "Hello Oauth2"
}

 

刷新 token ( refresh_token )

http://localhost:8080/oauth/token?
 grant_type=refresh_token
 &refresh_token=ce3dd10e-ec60-4399-9076-ee2140b04a61
 &client_id=pair
 &client_secret=secret

返回结果:

{
  "access_token": "436423b4-fc22-4f41-8186-d8706ae9396f",
  "token_type": "bearer",
  "refresh_token": "ce3dd10e-ec60-4399-9076-ee2140b04a61",
  "expires_in": 1999,
  "scope": "read write trust"
}

 

 

转载于:https://my.oschina.net/u/3901362/blog/3076080

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OAuth 2.0定义了多种授权模式,用于在第三方应用和资源拥有者之间进行授权。以下是OAuth 2.0中常用的几种授权模式: 1. 授权模式(Authorization Code Grant):这是最常见的授权模式,适用于Web应用。用户在第三方应用中点击授权按钮后,将被重定向到授权服务器进行登录和授权,然后授权服务器返回一个授权码给第三方应用,再通过授权码获取访问令牌。 2. 隐式授权模式(Implicit Grant):适用于纯前端应用,如单页应用(SPA)或移动应用。在这种模式下,用户直接在浏览器中进行登录和授权,并将访问令牌作为返回结果直接传递给第三方应用。相比于授权模式,隐式授权模式省略了获取授权码的步骤。 3. 密码模式(Password Grant):适用于受信任的第一方应用,如移动应用。用户将用户名和密码直接提供给第三方应用,并由第三方应用将其发送到认证服务器进行验证和授权,然后返回访问令牌给第三方应用。 4. 客户端凭证模式(Client Credentials Grant):适用于第三方应用代表自身进行身份验证和授权,而不是代表用户。第三方应用使用其自己的凭证(客户端ID和客户端密钥)直接向授权服务器请求访问令牌。 5. 设备授权模式(Device Authorization Grant):适用于没有直接的用户界面的设备或应用,如智能电视或物联网设备。设备通过展示授权码和用户指令,引导用户在另一个设备上进行授权。 这些授权模式提供了不同的方式来满足不同场景下的授权需求,开发者可以根据具体应用情况选择适合的模式。同时,需要注意选择合适的模式时要考虑安全性和用户体验之间的权衡。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值