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}`) + } + } }