前言
由于最近公司的项目要在海外运行,因此需要对接海外的登录,目前就是谷歌和facebook两种,后面支付也是需要的,后续再进行书写
谷歌登录
这个相对比较容易,而且只提供给安卓即可,废话就不多说了,直接贴解决方案
引入maven依赖
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.35.2</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client-android</artifactId>
<version>1.35.2</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-java6</artifactId>
<version>1.33.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.33.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-oauth2</artifactId>
<version>v2-rev20200213-2.0.0</version>
</dependency>
工具类
@Slf4j
public class IdTokenVerifier {
//安卓信息
private static final String CLIENT_ID = Constants.GOOGLE_APPLE_ID; // 替换为你的 Android 客户端 ID
public static GoogleIdToken.Payload verifyToken(String idTokenString) throws GeneralSecurityException, IOException {
NetHttpTransport transport = new NetHttpTransport();
GsonFactory jsonFactory = new GsonFactory();
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
.setAudience(Collections.singletonList(CLIENT_ID))
.build();
GoogleIdToken idToken = verifier.verify(idTokenString);
if (idToken != null) {
log.info("verifyToken-返回的数据为{}", JsonUtils.Object2Json(idToken));
return idToken.getPayload();
} else {
// 无效的 ID token
log.info("verifyToken-返回的数据为null");
return null;
}
}
public static boolean checkNonce(String nonce, GoogleIdToken.Payload payload) {
if(payload == null) {
return false;
}
Object

最低0.47元/天 解锁文章
1290

被折叠的 条评论
为什么被折叠?



