对接淘宝授权登录
官方对接文档:https://open.m.taobao.com/doc.htm?spm=a219a.7386653.0.0.c549669anDR2sm#?treeId=420&docId=105590&docType=1&platformId=12
需要在创建一个应用
https://baichuan.taobao.com/ 这里创建[阿里百川]
然后再淘宝开发平台就显示了
然后需要再淘宝开放平台应用信息更改回调地址
再这里更改回调地址。回调地址必须和下面的链接里的redirect_uri
一致
前端展示链接
下面的地址注意事项:
- view:必须为wap(因为是无线应用,并且是移动端)
- from_site=fuwu 要设置。可以保证授权后,不需要再继续授权,直接回调
/**
* @TODO 参数介绍
* client_id必选12345678(八位)即appkey,创建应用时获得。
*
* response_type必选 code / token授权类型 ,值为code / token。
*
* redirect_uri必选填写应用注册时回调地址域名
* redirect_uri 指的是应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uri。要求与应用注册时填写的回调地址域名一致或顶级域名一致 。
*
* state可选可自定义,如1212等维持应用的状态,传入值与返回值保持一致。
*
* view可选可选web / tmall / wap其中一种,默认为web
* Web 对应PC端(淘宝logo)浏览器页面样式;Tmall 对应天猫的浏览器页面样式;Wap 对应无线端的浏览器页面样式。
*
* force_auth可选true,如force_auth=true 在授权url中加 force_auth=true,不管授权是否有效都会弹授权页面,用户登陆授权以后有效时间会刷新。
*
* from_site可选fuwu,如from_site=fuwu 在授权url加from_site=fuwu,用户已登录且授权有效情况下会直接跳转回调,不会弹授权页面,授权时间不刷新。
*/
https://oauth.m.taobao.com/authorize? response_type=code&client_id=27557988&redirect_uri=m.jfchinese.com&state=U&view=Wap&from_site=fuwu
- 客户授权后,回调的地址栏里会返回一个code
- 后端拿着code 在请求淘宝
- APP_KEY_WAP =应用的key
- SECRETS_WAP=应用的密码
- AUTHORIZED_TOKEN_URL=获取token 的地址:https://oauth.m.taobao.com/token
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hKdJTItW-1654418466678)(E:/note/notePng/image-20220524175014257.png)]
/**
* @TODO 参数介绍
* client_id 必选等同于AppKey,创建应用时获得。
*
* client_secret 必选等同于AppSecret,创建应用时获得。
*
* grant_type 必选 authorization_code授权类型 ,值为authorization_code
*
* code必选上一步获取code得到
*
* redirect_uri必选填写应用注册时回调地址域名。redirect_uri指的是应用发起请求时,所传的回调地址参数,在用户授权后应用会跳转至redirect_uri。要求与应用注册时填写的回调地址域名一致或顶级域名一致 。
*
* state 可选可自定义,如1212等;维持应用的状态,传入值与返回值保持一致。
*
* view 可选可选web、tmall或wap其中一种,Web对应PC端(淘宝logo)浏览器页面样式;Tmall对应天猫的浏览器页面样式;Wap对应无线端的浏览器页面样式。
*/
public static Map getTaobaoAuthorizedLoginToken(String code) throws Exception {
Map<String, String> props = new HashMap<String, String>();
props.put("grant_type", "authorization_code");
/*测试时,需把test参数换成自己应用对应的值*/
props.put("code", code);
props.put("client_id", APP_KEY_WAP);
props.put("client_secret", SECRETS_WAP);
props.put("redirect_uri", REDIRECT_URI);
props.put("view", "wap");
String result = "";
try {
result = WebUtils.doPost(AUTHORIZED_TOKEN_URL, props, 30000, 30000);
System.out.println(result);
return JSONObject.parseObject(result.toString(), Map.class);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
可以拿到的参数目前有taobao_open_uid token等。
可以拿到的参数目前有taobao_open_uid token等。