java实现京东云第三方登录

匿名 (未验证) 提交于 2019-12-02 21:35:04

1,第一步首先需要注册京东云账号获取accessKeyId和secretAccessKey用来创建应用生成clientid

代码

 @Test public void test0(){     //申请的accessKeyId和secretAccessKey     String accessKeyId = "";     String secretAccessKey = "";     String jdcloudGwUrl = "ias.jdcloud-api.com";     CredentialsProvider staticCredentialsProvider = new StaticCredentialsProvider(accessKeyId, secretAccessKey);     Environment env = new Environment.Builder().endpoint(jdcloudGwUrl).build();     IasClient client = IasClient.builder().credentialsProvider(staticCredentialsProvider)             .httpRequestConfig(new HttpRequestConfig.Builder().protocol(Protocol.HTTPS).build())             .environment(env)             .build();     CreateAppRequest request = new CreateAppRequest();     request.regionId("cn-north-1");     //应用名称自定义     request.setClientName("test");     request.setTokenEndpointAuthMethod("client_secret_post");     //code码的形式进行认证     request.setGrantTypes("authorization_code,refresh_token");     request.setUserType("root");     request.setMultiTenant(true);     request.setAccessTokenValiditySeconds(20*60);     request.setRefreshTokenValiditySeconds(43200*60);     //重定向路径,登录获取code码后,跳转路径     request.setRedirectUris("重定向路径");     request.setScope("openid");     //创建应用的应用密码(建议使用足够复杂的密码)     request.setSecret("testsecret");     CreateAppResponse response = client.createApp(request);     String result = new Gson().toJson(response); }

官方文档返回值结构

{
"requestId": "begvm00wpbbvu0pp487s2icdwu5bkd15",
"result": {
"clientId": "8401537337984292",
"clientName": "测试 ClientName 网关接口",
"tokenEndpointAuthMethod": "client_secret_post",
"grantTypes": "implicit,refresh_token",
"responseTypes": "code",
"redirectUris": "http://jd.com",
"clientUri": "http://client_u.io",
"logoUri": "http://logo_ul.com",
"tosUri": "http://tos_ul.com",
"policyUri": "http://policy_ul.com",
"scope": "openid",
"jwksUri": "http://jwks.com",
"accessTokenValiditySeconds": 1800,
"refreshTokenValiditySeconds": 2592000,

"secretUpdateTime": 100000,
"account": "jcloud_00",
"userType": "sub"
}
}

2,获取clientid后,流程,Authorize Endpoint(将用户跳转到京东云登录获取用户登录授权:会获得一个code码在重定向路径后)――》Token Endpoint(根据code码,获取登录凭证access_token)――》UserInfo Endpoint(根据access_token获取用户京东云的唯一标识account也就是用户京东的唯一用户名)――》最后一步得到唯一标识后可自定义业务逻辑

3,

前端页面发送请求Authorize Endpoint

window.location.href = url + "?client_id=" + client_id + "&redirect_uri=" + redirect_uri + "&response_type=" + response_type +"&code_challenge_method=" + code_challenge_method + "&code_challenge=" + code_challenge + "&state=" + state

Authorize Endpoint发送成功后,后台回调路径代码

 

}

具体用到时可参考京东api文档

文章来源: https://blog.csdn.net/zuoyigehaizei/article/details/86604785
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!