95 lines
4.4 KiB
Java
95 lines
4.4 KiB
Java
package com.ruoyi.xq.tencent;
|
||
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.ruoyi.xq.util.JsonUtils;
|
||
import com.tencentcloudapi.common.AbstractModel;
|
||
import com.tencentcloudapi.common.Credential;
|
||
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
||
import com.tencentcloudapi.common.profile.ClientProfile;
|
||
import com.tencentcloudapi.common.profile.HttpProfile;
|
||
import com.tencentcloudapi.faceid.v20180301.FaceidClient;
|
||
import com.tencentcloudapi.faceid.v20180301.models.*;
|
||
|
||
import java.util.Objects;
|
||
|
||
public class TencentAuthClient {
|
||
|
||
public static boolean faceDetectIsPass(String bizToken) {
|
||
GetDetectInfoEnhancedResponse resp = getDetectInfo(bizToken);
|
||
if (!Objects.isNull(resp)) {
|
||
DetectInfoText text = resp.getText();
|
||
return !Objects.isNull(text) && text.getErrCode().intValue() == 0;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
/**
|
||
* 实名核身鉴权
|
||
*
|
||
* @return
|
||
*/
|
||
public static GetDetectInfoEnhancedResponse getDetectInfo(String bizToken) {
|
||
GetDetectInfoEnhancedResponse resp = null;
|
||
try {
|
||
Credential cred = new Credential("AKIDviL2b1KWHGNdR6gLwLbfaHpBSVQ8i8Pe", "DapskQxS7gBXlsqgP0a0KXXK8oy45INf");
|
||
HttpProfile httpProfile = new HttpProfile();
|
||
httpProfile.setEndpoint("faceid.tencentcloudapi.com");
|
||
httpProfile.setConnTimeout(10); // 请求连接超时时间,单位为秒(默认60秒)
|
||
httpProfile.setWriteTimeout(10); // 设置写入超时时间,单位为秒(默认0秒)
|
||
httpProfile.setReadTimeout(10);
|
||
ClientProfile clientProfile = new ClientProfile();
|
||
clientProfile.setHttpProfile(httpProfile);
|
||
FaceidClient client = new FaceidClient(cred, "", clientProfile);
|
||
GetDetectInfoEnhancedRequest req = new GetDetectInfoEnhancedRequest();
|
||
req.setBizToken(bizToken);
|
||
req.setInfoType("0");
|
||
req.setRuleId("1");
|
||
resp = client.GetDetectInfoEnhanced(req);
|
||
} catch (TencentCloudSDKException e) {
|
||
e.printStackTrace();
|
||
}
|
||
return resp;
|
||
}
|
||
|
||
public static CreateAuthResp createToken(String extra,String redirectUrl){
|
||
try{
|
||
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
||
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
|
||
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
||
Credential cred = new Credential("AKIDviL2b1KWHGNdR6gLwLbfaHpBSVQ8i8Pe", "DapskQxS7gBXlsqgP0a0KXXK8oy45INf");
|
||
// 实例化一个http选项,可选的,没有特殊需求可以跳过
|
||
HttpProfile httpProfile = new HttpProfile();
|
||
httpProfile.setEndpoint("faceid.tencentcloudapi.com");
|
||
// 实例化一个client选项,可选的,没有特殊需求可以跳过
|
||
ClientProfile clientProfile = new ClientProfile();
|
||
clientProfile.setHttpProfile(httpProfile);
|
||
// 实例化要请求产品的client对象,clientProfile是可选的
|
||
FaceidClient client = new FaceidClient(cred, "", clientProfile);
|
||
// 实例化一个请求对象,每个接口都会对应一个request对象
|
||
DetectAuthRequest req = new DetectAuthRequest();
|
||
req.setRuleId("1");
|
||
// 透传参数
|
||
req.setExtra(extra);
|
||
// 跳转的URL
|
||
req.setRedirectUrl(redirectUrl);
|
||
// 返回的resp是一个DetectAuthResponse的实例,与请求对象对应
|
||
DetectAuthResponse resp = client.DetectAuth(req);
|
||
// 输出json格式的字符串回包
|
||
System.out.println(AbstractModel.toJsonString(resp));
|
||
return JsonUtils.parseObject(AbstractModel.toJsonString(resp), CreateAuthResp.class);
|
||
} catch (TencentCloudSDKException e) {
|
||
System.out.println(e.toString());
|
||
}
|
||
return null;
|
||
}
|
||
|
||
|
||
public static void main(String[] args) {
|
||
// createToken(null,null);
|
||
GetDetectInfoEnhancedResponse detectInfo = getDetectInfo("09792FA0-C269-401F-B8DB-E68B680E0728");
|
||
System.out.println(JSON.toJSONString(detectInfo));
|
||
|
||
}
|
||
}
|