05 | 如何安全、快速地接入OAuth 2.0?
创始人
2024-05-30 02:49:28
0

05 | 如何安全、快速地接入OAuth 2.0?

构建第三方软件应用

image.png

第一点,注册信息

小兔软件的研发人员提前登录到京东商家开放平台进行手动注册,以便后续使用这些注册的相关信息来请求访问令牌。兔软件需要先拥有自己的 app_id 和 app_serect 等信息,同时还要填写自己的回调地址 redirect_uri、申请权限等信息。

第二点,引导授权。

其实就是让用户为第三方软件授权,得到了授权之后,第三方软件才可以代表用户去访问数据。

第三点,使用访问令牌。

拿到令牌后去使用令牌,才是第三方软件的最终目的。
官方规范给出的使用访问令牌请求的方式,有三种,分别是:

  1. Form-Encoded Body Parameter(表单参数)
  2. URI Query Parameter(URI 查询参数)
  3. Authorization Request Header Field(授权请求头部字段)

建议你采用表单提交,也就是 POST 的方式来提交令牌,因为表单提交的方式在保证安全传输的同时,还不需要去额外处理 Authorization 头部信息。

String protectedURl="http://localhost:8082/ProtectedServlet-ch03";
Map paramsMap = new HashMap();paramsMap.put("app_id","APPID_RABBIT");
paramsMap.put("app_secret","APPSECRET_RABBIT");
paramsMap.put("token",accessToken);String result = HttpURLClient.doPost(protectedURl,HttpURLClient.mapToStr(paramsMap));

第四点,使用刷新令牌。

在小兔打单软件收到访问令牌的同时,也会收到访问令牌的过期时间 expires_in。一个设计良好的第三方应用,应该将 expires_in 值保存下来并定时检测;如果发现 expires_in 即将过期,则需要利用 refresh_token 去重新请求授权服务,以便获取新的、有效的访问令牌。

服务市场中的第三方应用软件

作为第三方开发者来构建第三方软件的时候,在授权码环节除了要接收授权码 code 值之外,还要接收用户的订购相关信息,比如服务的版本号、服务代码标识等信息。

构建受保护资源服务

比如说,访问头像的 API、访问昵称的 API。
基本都是以 Web API 为载体的形式进行。因此呢,当我们说受保护资源被授权服务保护着时,实际上说的是授权服务最终保护的是这些 Web API.
image.png

//不同的权限对应不同的操作
String[] scope = OauthServlet.tokenScopeMap.get(accessToken);StringBuffer sbuf = new StringBuffer();
for(int i=0;i0){queryGoods("");
}if(sbuf.toString().indexOf("add")>0){addGoods("");
}if(sbuf.toString().indexOf("del")>0){delGoods("");
}

不同的权限对应不同的数据。
如果小兔软件请求过来的一个访问令牌 access_token 的 scope 权限范围只对应了 Personal Data,那么包含该 access_token 值的请求就不能获取到 Contact 和 Like 的信息,关于这部分的代码,实际跟不同权限对应不同操作的代码类似。

不同的用户对应不同的数据。
多的场景却是基于用户属性的。还是以小兔打单软件为例,商家每次打印物流面单的时候,小兔打单软件都要知道是哪个商家的订单。这种情况下,商家为小兔软件授权,小兔软件获取的 access_token 实际上就包含了商家这个用户属性。

//不同的用户对应不同的数据
String user = OauthServlet.tokenMap.get(accessToken);
queryOrders(user);

image.png

总结

  1. 对于第三方软件,比如小兔打单软件来讲,它的主要目的就是获取访问令牌,使用访问令牌,这当然也是整个 OAuth 2.0 的目的,就是让第三方软件来做这两件事。在这个过程中需要强调的是,第三方软件在使用访问令牌的时候有三种方式,我们建议在平台和第三方软件约定好的前提下,优先采用 Post 表单提交的方式
  2. 受保护资源系统,比如小兔软件要访问开放平台的订单数据服务,它需要注意的是权限的问题,这个权限范围主要包括,不同的权限会有不同的操作,不同的权限也会对应不同的数据,不同的用户也会对应不同的数据

原文

相关内容

热门资讯

《学会合理消费》说课稿 《学会合理消费》说课稿  本课的题目是《学会合理消费》。下面我从教材地位、教学目标、重难点、教学手段...
小学新教师代表发言稿 小学新教师代表发言稿小学新教师代表发言稿大家好,我是我们学校的新教师喻俊伟,今天在此做新教师代表发言...
《爱迪生救妈妈》说课稿 《爱迪生救妈妈》说课稿范文(精选3篇)  作为一位杰出的教职工,有必要进行细致的说课稿准备工作,借助...
《桂花雨》的说课材料 《桂花雨》的说课材料范文  还是在六月初,偶然在报纸读到一条消息:现代著名女作家、在华语文坛享有盛誉...
《这儿真好》说课稿 《这儿真好》说课稿  在教学工作者实际的教学活动中,就不得不需要编写说课稿,写说课稿能有效帮助我们总...
《十六年前的回忆》说课稿 《十六年前的回忆》说课稿范文(精选3篇)  作为一名教师,常常要根据教学需要编写说课稿,写说课稿能有...
青春有约广播稿 青春有约广播稿  广播在校园内常见到,而广播稿就是为了广播需要而准备的草稿,通过无线电波或导线传送声...
《角的初步认识》说课材料 《角的初步认识》说课材料  本节课的教学内容是小学数学二年级上册(西师版)第二单元“角的初步认识”中...
妹妹给哥哥婚礼讲话稿 妹妹给哥哥婚礼讲话稿(通用5篇)  在不断进步的时代,需要使用讲话稿的情况越来越多,讲话稿是应用写作...
运动会表扬稿 运动会表扬稿100字(通用15篇)  表扬稿是一种具有激励性质的书写文风。它存在的目的是为了宣传好人...
优秀学生的发言稿 关于优秀学生的发言稿(精选14篇)  在我们平凡的日常里,需要使用发言稿的事情愈发增多,通过对发言稿...
结婚父母贺词讲话稿 结婚父母贺词讲话稿  结婚父母贺词讲话稿(精选21篇)  在平凡的学习、工作、生活中,大家最不陌生的...
班长竞选发言稿 班长竞选发言稿400字(通用33篇)  在日常学习、工作抑或是生活中,大家都尝试过写作文吧,借助作文...
乘除法的意义和各部分间的关系... 乘除法的意义和各部分间的关系说课稿范文  作为一无名无私奉献的教育工作者,可能需要进行说课稿编写工作...
毕业典礼主持人主持稿开场白 毕业典礼主持人主持稿开场白(精选17篇)  在我们平凡的日常里,很多情况下我们都需要用到开场白,开场...
学校元旦晚会主持稿 学校元旦晚会主持稿15篇  在日新月异的现代社会中,需要使用主持稿的情境愈发增多,主持稿一般是由主持...
小学数学五年级上册平行四边形... 人教版小学数学五年级上册平行四边形的面积说课稿  内容分析:  九年义务教育六年制小学数学教材关于几...
一年级上册《0的认识和0的加... 一年级上册《0的认识和0的加减法》说课稿  作为一位杰出的老师,总不可避免地需要编写说课稿,编写说课...
经典动员大会发言稿 经典动员大会发言稿(通用6篇)  在日新月异的现代社会中,发言稿应用范围愈来愈广泛,发言稿可以起到整...
高中学校运动会加油稿 高中学校运动会加油稿(通用40篇)  随着社会不断地进步,越来越多人会去使用加油稿,借助加油稿可以给...