oauth2使用授权码模式(authorization code)获取access_token

oauth2获取access_token的几种方式:

  1. 简化模式(implicit):在redirect_url中传递access_token,oauth客户端运行在浏览器中。
  2. 密码模式(password):将用户名和密码传过去,直接获取access_token。
  3. 客户端模式(client credentials):用户向客户端注册,然后客户端以自己的名义向“服务端”获取资源。
  4. 授权码模式(authorization code):通过客户端的后台服务器,向服务端认证。

之前介绍了密码模式(password)获取access_token的方式,今天介绍下授权码模式。

授权码模式(authorization code)

  1. 在浏览器中访问OAuth2 服务器的认证接口:
    http://localhost:8020/oauth/authorize?response_type=code&client_id=test&redirect_uri=http://localhost:8080
  • response_type=code : 代表期望的请求响应类型为authorization code
  • client_id=test: client_id为你需要使用的客户端id
  • redirect_uri=http://localhost:8080 : redirect_uri是成功获取token之后,重定向的地址
  1. 访问认证接口成功之后,浏览器会跳转到OAuth2配置的登录页或者默认的security登录,正确输入用户名/密码之后。浏览器将会在重定向的地址上返回一个code。如下:
    http://localhost:8080?code=W3ixVa
  • code=W3ixVa : code就是OAuth2服务器返回的
  1. 然后使用获取到的code范围OAuth2认证服务器取到access_token,如下:
    http://localhost:8020/oauth/token?grant_type=authorization_code&code=W3ixVa&client_id=test&client_secret=secret&redirect_uri=http://localhost:8080
  • grant_type=authorization_code : grant_type为认证类型,当前为授权码模式
  • code=W3ixVa : code为上面获取到的code
  • client_id=test : client_id 与上面获取code的client_id需要一致
  • client_secret=secret : 为client_id对应的客户端的密钥
  • redirect_uri=http://localhost:8080 : : redirect_uri是成功获取token之后,重定向的地址

成功获取token如下:
access_token

至此:使用授权码模式(authorization code)获取access_token就完成了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值