增加apple web客户端

This commit is contained in:
zhl 2023-04-04 11:20:10 +08:00
parent 1aa0e1b6d0
commit c36dafb60c

View File

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