文档章节

OAuth认证开发

舒文suven
 舒文suven
发布于 08/21 20:55
字数 731
阅读 12
收藏 1
提示: 以下测试是基于项目安装成功,初始化数据库(initial_db.ddl, oauth.ddl, initial_data.ddl)后的测试, 也可在页面上点击"client_details"菜单里进行测试
方式1:基于浏览器 (grant_type=authorization_code) 分两步完成
第一步: 获取code, 访问时后跳到登录页面,登录成功后跳转到redirect_uri指定的地址 [GET]
说明:只能使用admin或unity 账号登录才能有权限访问,若使用mobile账号登录将返回Access is denied
http://localhost:8080/spring-oauth-server/oauth/authorize?client_id=unity-client&redirect_uri=http%3a%2f%2flocalhost%3a8080%2fspring-oauth-server%2funity%2fdashboard&response_type=code&scope=read&state=123456
说明: 由于mobile-client只支持password,refresh_token, 所以不管用哪个账号登录后都将返回Illegal action
http://localhost:8080/spring-oauth-server/oauth/authorize?client_id=mobile-client&redirect_uri=http%3a%2f%2flocalhost%3a8080%2fspring-oauth-server%2fm%2fdashboard&response_type=code&scope=read&state=123456
响应的URL如:
http://localhost:8080/spring-oauth-server/unity/dashboard.htm?code=zLl170
第二步: 通过code换取access_token [POST]
http://localhost:8080/spring-oauth-server/oauth/token?client_id=unity-client&client_secret=unity&grant_type=authorization_code&code=zLl170&redirect_uri=http%3a%2f%2flocalhost%3a8080%2fspring-oauth-server%2funity%2fdashboard
方式2:基于客户端(如IOS,Android) (grant_type=password) ,需要账号与密码, 一步完成
(注意参数中的username,password,对应用户的账号,密码) [POST]
http://localhost:8080/spring-oauth-server/oauth/token?client_id=mobile-client&client_secret=mobile&grant_type=password&scope=read,write&username=mobile&password=mobile
说明:由于unity-client不支持password,所以若用unity-client通过password方式去授权,将返回invalid_grant
http://localhost:8080/spring-oauth-server/oauth/token?client_id=unity-client&client_secret=unity&grant_type=password&scope=read,write&username=mobile&password=mobile
获取access_token响应的数据如:
{"access_token":"3420d0e0-ed77-45e1-8370-2b55af0a62e8","token_type":"bearer","refresh_token":"b36f4978-a172-4aa8-af89-60f58abe3ba1","expires_in":43199,"scope":"read write"}
获取access_token后访问资源 [GET]
http://localhost:8080/spring-oauth-server/unity/dashboard.htm?access_token=3420d0e0-ed77-45e1-8370-2b55af0a62e8
刷新access_token [POST]
http://localhost:8080/spring-oauth-server/oauth/token?client_id=mobile-client&client_secret=mobile&grant_type=refresh_token&refresh_token=b36f4978-a172-4aa8-af89-60f58abe3ba1
Restful OAuth2 Test [POST]
URL: /oauth2/rest_token
ContentType: application/json

DEMO URL: http://localhost:8080/spring-oauth-server/oauth2/rest_token
Request Body: {"grant_type":"client_credentials","scope":"read","client_id":"credentials","client_secret":"credentials","username":"user","password":"123"}

Response Body:
{
    "access_token": "cd165ebc-562d-45df-8488-9f1ba947553e",
    "token_type": "bearer",
    "expires_in": 43193,
    "scope": "read"
}

更多的测试请访问
https://gitee.com/mkk/spring-oauth-client


------------------------------------------------------------------------------------------------
grant_type(授权方式)
1.authorization_code                      授权码模式(即先登录获取code,再获取token)
2.password                                     密码模式(将用户名,密码传过去,直接获取token)
3.refresh_token                            刷新token
4.implicit                                        简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)
5.client_credentials                      客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向'服务端'获取资源)


scope
1.read
2.write
3.trust


------------------------------------------------------------------------------------------------

Resource API Use it get resource-server resources after auth successful. will use it in <spring-oauth-client> project. (retrieve current logged user information)

[ROLE_UNITY]

http://localhost:8080/spring-oauth-server/unity/user_info?access_token=b03b99a1-f128-4d6e-b9d3-38a0ebcab5ef

Response JSON

{"archived":false,"email":"unity@wdcy.cc","guid":"55b713df1c6f423e842ad68668523c49","phone":"","privileges":["UNITY"],"username":"unity"}

[ROLE_MOBILE]

http://localhost:8080/spring-oauth-server/m/user_info?access_token=20837fa5-a0a1-4c76-9083-1f0e47ca0208

Response JSON

{"archived":false,"email":"mobile@wdcy.cc","guid":"612025cb3f964a64a48bbdf77e53c2c1","phone":"","privileges":["MOBILE"],"username":"mobile"}

© 著作权归作者所有

共有 人打赏支持
舒文suven
粉丝 12
博文 36
码字总数 67008
作品 0
广州
后端工程师
腾讯微博Android客户端开发 - OAuth1.0认证介绍

http://wiki.open.t.qq.com/index.php/OAuth%E6%8E%88%E6%9D%83%E8%AF%B4%E6%98%8E 目录 1 腾讯微博 API OAuth认证介绍 2 OAuth是什么? 3 OAuth的原理认证流程及访问资源流程 3.1 请求签名说...

jxlgzwh
2013/07/06
0
0
OAuth的机制原理讲解及开发流程

本想前段时间就把自己通过QQ OAuth1.0、OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oauth1.0的认证开发。...

只想一个人静一静
2014/04/26
0
0
OAuth授权 | 看这篇就够了

背景 上一篇我们介绍了单点登录(SSO),它能够实现多个系统的统一认证。今天我们来谈一谈近几年来非常流行的,大名鼎鼎的OAuth。它也能完成统一认证,而且还能做更多的事情。至于OAuth与SSO...

小忽悠
09/09
0
0
SpringCloud实践分享-OAuth2认证中心(待完成)

摘要:随着云计算的发展,微服务、前后端分离、DevOps逐渐成为架构主流。而不同于以往的单体应用,微服务大多仅以api形式专递信息,并且无状态(不记录用户登录状态及会话内容),这就为整个...

杨子敬的瞎扯时刻
06/11
0
0
(十五) 整合spring cloud云架构 - commonservice-sso服务搭建(一)

前面几篇我们已经介绍了Spring Cloud和oauth2的知识点,今天我们要利用Spring Cloud和oauth2进行commonservice-sso服务搭建,本节我们只是搭建commonservice-sso的基础平台,闲话少说,直接将...

SpringCloud关注者
09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

控件WebView显示网页

一、代码编写 (一)方法一:通过打开app直接打开指定网站 1.打开Android Stutio,新建一个工程,名为Sdca。注意,名称开头必须为大写。 2.添加WebView控件 打开app esactivity_main.xml添加...

lanyu96
20分钟前
1
0
WinRAR 去除弹窗广告

想要去除它,需要用到另外一个工具resource hacker,百度一下,下载它,工具很小,安装也简单。安装过后,找到winrar安装目录下的WinRAR.exe文件,右击选择 open useing resource hacker打开...

YunOu
33分钟前
1
0
Bash工作管理详解

Bash工作管理 Bash的工作是对具体任务的一个抽象表述,更确切的说是对管道的应用上的表述。Bash中的工作在形式上表现为一组相关进程或单个进程。工作进程组分为前台和后台,前台进程会对键盘...

小陶小陶
37分钟前
2
0
Qt那些事0.0.1

LIBS += -L$$PWD/lib/ -lStv1QMAKE_POST_LINK += $$QMAKE_COPY $$replace(PWD,"/","\\")\lib\Stv1.dll $$replace(OUT_PWD,"/","\\")\debug\Stv1.dll pro文件里,写起来按理说应该是轻松地......

Ev4n
47分钟前
2
0
如何正确的使用动态VPS(Linux)自动更换IP

背景 现在越来越多的人开始玩网赚项目,蚂蚁再小也是肉,薅羊毛的羊毛党越来越多,一些网赚项目也越来越受欢迎,但是一般的网赚项目都是要求真实用户的,所以要想获得大量的真实ip,一种动态...

bengozhong
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部