From c36dafb60ccf13ad481540bdf4ab845dc5859ae4 Mon Sep 17 00:00:00 2001 From: zhl Date: Tue, 4 Apr 2023 11:20:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0apple=20web=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/apple.controller.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/controllers/apple.controller.ts b/src/controllers/apple.controller.ts index c5fa413..e1be8bd 100644 --- a/src/controllers/apple.controller.ts +++ b/src/controllers/apple.controller.ts @@ -2,9 +2,12 @@ import BaseController, { ROLE_ANON } from 'common/base.controller' import { role, router } from 'decorators/router' import verifyAppleToken from 'verify-apple-id-token' import { Account, PlatEnum } from 'modules/Account' +import axios from 'axios' +var https = require('follow-redirects').https const CLIENT_ID_DEBUG = 'com.jc.tebg' const CLIENT_ID_RELEASE = 'com.cege.games.release' +const CLIEND_ID_ANDROID = 'wallet.cebggame.com' class AppleController extends BaseController { @role(ROLE_ANON) @@ -21,7 +24,7 @@ class AppleController extends BaseController { const payload = await verifyAppleToken({ idToken: token, - clientId: [CLIENT_ID_DEBUG, CLIENT_ID_RELEASE], + clientId: [CLIENT_ID_DEBUG, CLIENT_ID_RELEASE, CLIEND_ID_ANDROID], }) const openId = payload.sub let data: any = {} @@ -34,4 +37,16 @@ class AppleController extends BaseController { const ztoken = await res.jwtSign({ id: user.id }) return { token: ztoken } } + + @role(ROLE_ANON) + @router('post /apple/oauth_redirect') + async appleWebLoginCb(req, res) { + const { code, id_token, state, user, error } = req.params + console.log(code, id_token, state, user) + if (error) { + res.redirect(`cebg://apple_login_result?state=${state}&error=${JSON.stringify(error)}`) + } else { + res.redirect(`cebg://apple_login_result?token=${id_token}&state=${state}`) + } + } }