序
前面三篇文章讲了client credentials、password以及authorization code授权模式,本文就来讲一下implicit模式。
implicit模式
该模式直接在浏览器中向认证服务器申请令牌,无需经过client端的服务器,跳过了"授权码"这个步骤,所有步骤在浏览器中完成,直接在回调url中传递令牌。
适合直接在前端应用获取token的应用
步骤跟authorization code类似,只不过少了授权码:
- 在浏览器向认证服务器请求token
- 用户登录(如果之前没有登陆的话)
- 用户授权
- 授权完直接跳转到redirectUri并在url中携带token
实例
请求token
http://localhost:8080/oauth/authorize?response_type=token&client_id=demoApp&redirect_uri=https://baidu.com
- 注意,这里response_type=token
- 无需传递client secret,传递client_id只是为了验证在auth server配置的redirect_uri是否一致
- redirect_uri中如果携带参数,则最好对url编码再作为参数传递过去
回调成功
http://localhost:8081/callback#access_token=41f78007-e2ec-4978-9beb-a830b638d4d8&token_type=bearer&expires_in=1199&scope=all
可以发现直接在url中携带了access_token等信息
当然了,使用了implicit模式,其实就没必要使用spring security oauth2的client模块了,因为直接走浏览器模式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。