京东网站建设有哪些优点,网站商城系统设计,asp网站源码安装流程,做网站有前景吗05 | 如何安全、快速地接入OAuth 2.0#xff1f; 构建第三方软件应用 第一点#xff0c;注册信息
小兔软件的研发人员提前登录到京东商家开放平台进行手动注册#xff0c;以便后续使用这些注册的相关信息来请求访问令牌。兔软件需要先拥有自己的 app_id 和 app_serect 等信…05 | 如何安全、快速地接入OAuth 2.0 构建第三方软件应用 第一点注册信息
小兔软件的研发人员提前登录到京东商家开放平台进行手动注册以便后续使用这些注册的相关信息来请求访问令牌。兔软件需要先拥有自己的 app_id 和 app_serect 等信息同时还要填写自己的回调地址 redirect_uri、申请权限等信息。
第二点引导授权。
其实就是让用户为第三方软件授权得到了授权之后第三方软件才可以代表用户去访问数据。
第三点使用访问令牌。
拿到令牌后去使用令牌才是第三方软件的最终目的。官方规范给出的使用访问令牌请求的方式有三种分别是
Form-Encoded Body Parameter表单参数URI Query ParameterURI 查询参数Authorization Request Header Field授权请求头部字段
建议你采用表单提交也就是 POST 的方式来提交令牌因为表单提交的方式在保证安全传输的同时还不需要去额外处理 Authorization 头部信息。
String protectedURlhttp://localhost:8082/ProtectedServlet-ch03;
MapString, String paramsMap new HashMapString, String();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.
//不同的权限对应不同的操作
String[] scope OauthServlet.tokenScopeMap.get(accessToken);StringBuffer sbuf new StringBuffer();
for(int i0;iscope.length;i){sbuf.append(scope[i]).append(|);
}if(sbuf.toString().indexOf(query)0){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);总结
对于第三方软件比如小兔打单软件来讲它的主要目的就是获取访问令牌使用访问令牌这当然也是整个 OAuth 2.0 的目的就是让第三方软件来做这两件事。在这个过程中需要强调的是第三方软件在使用访问令牌的时候有三种方式我们建议在平台和第三方软件约定好的前提下优先采用 Post 表单提交的方式。受保护资源系统比如小兔软件要访问开放平台的订单数据服务它需要注意的是权限的问题这个权限范围主要包括不同的权限会有不同的操作不同的权限也会对应不同的数据不同的用户也会对应不同的数据。
原文