2023-09-22 12:03:18 +08:00

46 lines
1.5 KiB
JavaScript

const scripts = ['https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js'];
const CLIENT_ID = 'wallet.cebggame.com';
const REDIRECT_URI = `${location.origin}${location.pathname}`;
// Authorization scopes required by the API; multiple scopes can be included, separated by spaces.
const SCOPES = 'name email';
export class AppleClient {
initClient() {
let state = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
let nonce = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
AppleID.auth.init({
clientId : CLIENT_ID,
scope : SCOPES,
redirectURI : REDIRECT_URI,
state,
nonce,
usePopup : true
});
}
async initAppleClient() {
await loadScripts(scripts.map((script) => [script]));
this.initClient();
}
async login(funid) {
let result = {};
try {
const data = await AppleID.auth.signIn({state: funid+''})
// Handle successful response.
console.log("apple login success: ", JSON.stringify(data))
result = {
data: data.authorization.id_token,
errcode: 0,
};
} catch ( error ) {
// Handle error.
console.log('apple login error: ', JSON.stringify(error))
result = {
errcode: 1,
errmessage: error.error || error.message || error,
}
}
jc.wallet.nativeSvr.handleNativeCallback(funid, JSON.stringify(result));
}
}