From 1f4ca7831fb26d720c61523a049e028620344405 Mon Sep 17 00:00:00 2001 From: acidumirae Date: Sun, 17 Sep 2023 12:00:09 +0800 Subject: [PATCH] Updated; Apple sing-in --- ios/App/Podfile | 1 + ios/App/Podfile.lock | 8 +- package-lock.json | 155 ++++++++++++++++++++++++----- package.json | 2 +- src/app/pages/login/login.page.ts | 93 +++++++++++++++-- src/app/services/wrench.service.ts | 12 ++- 6 files changed, 229 insertions(+), 42 deletions(-) diff --git a/ios/App/Podfile b/ios/App/Podfile index 583597b..6dea08b 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -12,6 +12,7 @@ def capacitor_pods pod 'Capacitor', :path => '../../node_modules/@capacitor/ios' pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios' pod 'CapacitorCommunityAppleSignIn', :path => '../../node_modules/@capacitor-community/apple-sign-in' + pod 'CapacitorCommunityBarcodeScanner', :path => '../../node_modules/@capacitor-community/barcode-scanner' pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app' pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics' pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard' diff --git a/ios/App/Podfile.lock b/ios/App/Podfile.lock index ef335f6..8af9253 100644 --- a/ios/App/Podfile.lock +++ b/ios/App/Podfile.lock @@ -5,6 +5,8 @@ PODS: - Capacitor - CapacitorCommunityAppleSignIn (5.0.0): - Capacitor + - CapacitorCommunityBarcodeScanner (4.0.1): + - Capacitor - CapacitorCordova (5.0.5) - CapacitorHaptics (5.0.4): - Capacitor @@ -46,6 +48,7 @@ DEPENDENCIES: - "Capacitor (from `../../node_modules/@capacitor/ios`)" - "CapacitorApp (from `../../node_modules/@capacitor/app`)" - "CapacitorCommunityAppleSignIn (from `../../node_modules/@capacitor-community/apple-sign-in`)" + - "CapacitorCommunityBarcodeScanner (from `../../node_modules/@capacitor-community/barcode-scanner`)" - "CapacitorCordova (from `../../node_modules/@capacitor/ios`)" - "CapacitorHaptics (from `../../node_modules/@capacitor/haptics`)" - "CapacitorKeyboard (from `../../node_modules/@capacitor/keyboard`)" @@ -65,6 +68,8 @@ EXTERNAL SOURCES: :path: "../../node_modules/@capacitor/app" CapacitorCommunityAppleSignIn: :path: "../../node_modules/@capacitor-community/apple-sign-in" + CapacitorCommunityBarcodeScanner: + :path: "../../node_modules/@capacitor-community/barcode-scanner" CapacitorCordova: :path: "../../node_modules/@capacitor/ios" CapacitorHaptics: @@ -82,6 +87,7 @@ SPEC CHECKSUMS: Capacitor: b1248915663add1bd6567e2b67c1c1fa3abcf5e8 CapacitorApp: 7a5dec8b33573707164b293475d5c89ba684364a CapacitorCommunityAppleSignIn: eafdd59b18b38161fa5cceee7b0e31312b122958 + CapacitorCommunityBarcodeScanner: 7feb206489c8555a8ca0c74c57ddf49ead774eb8 CapacitorCordova: f8c06b897c74ee8f7701fe10e6443b40822bc83a CapacitorHaptics: e36653b37326d71bb35ae42b944124037dbc3d97 CapacitorKeyboard: d1b25fde6f19744ad09c890862aefc6e2a7ded3d @@ -90,6 +96,6 @@ SPEC CHECKSUMS: CordovaPluginsStatic: c1b87170d7e6c70c473250768081e07414af3879 OneSignalXCFramework: 0225dc78b9c611be84733e5adc9b68638632c1e8 -PODFILE CHECKSUM: 859fc2245f7c2c82dfa6964844c8ce805830aae5 +PODFILE CHECKSUM: b015864ddbe3c1ce5a660117a38ed722ba66c918 COCOAPODS: 1.12.1 diff --git a/package-lock.json b/package-lock.json index 73a3ded..949d3b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@angular/platform-browser-dynamic": "^14.0.0", "@angular/router": "^14.0.0", "@capacitor-community/apple-sign-in": "^5.0.0", + "@capacitor-community/barcode-scanner": "^4.0.1", "@capacitor/android": "5.0.5", "@capacitor/app": "^5.0.0", "@capacitor/core": "^5.0.0", @@ -25,9 +26,10 @@ "@capacitor/status-bar": "^5.0.0", "@ionic/angular": "^6.1.9", "angularx-qrcode": "^14.0.0", + "bn-ng-idle": "^2.0.5", + "jwt-decode": "^3.1.2", "onesignal-cordova-plugin": "^5.0.0-beta-02", "rxjs": "~6.6.0", - "sha.js": "^2.4.11", "tslib": "^2.2.0", "zone.js": "~0.11.4" }, @@ -2320,6 +2322,18 @@ "@capacitor/core": "^5.0.0" } }, + "node_modules/@capacitor-community/barcode-scanner": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@capacitor-community/barcode-scanner/-/barcode-scanner-4.0.1.tgz", + "integrity": "sha512-acuhDU2mqskSeCIQMc5TGNnDszXXs4IqEES+3C2JDiq+MkJMTr+B2Dhq4k55hlkRFMOumMhlnbr2R9G6qyFPhw==", + "dependencies": { + "@zxing/browser": "^0.1.3", + "@zxing/library": "^0.20.0" + }, + "peerDependencies": { + "@capacitor/core": "^5.0.0" + } + }, "node_modules/@capacitor/android": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.0.5.tgz", @@ -4995,6 +5009,37 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "node_modules/@zxing/browser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@zxing/browser/-/browser-0.1.4.tgz", + "integrity": "sha512-WYjaav7St4sj/u/Km2llE4NU2Pq3JFIWnczr0tmyCC1KUlp08rV3qpu7iiEB4kOx/CgcCzrSebNnSmFt5B3IFg==", + "optionalDependencies": { + "@zxing/text-encoding": "^0.9.0" + }, + "peerDependencies": { + "@zxing/library": "^0.20.0" + } + }, + "node_modules/@zxing/library": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.20.0.tgz", + "integrity": "sha512-6Ev6rcqVjMakZFIDvbUf0dtpPGeZMTfyxYg4HkVWioWeN7cRcnUWT3bU6sdohc82O1nPXcjq6WiGfXX2Pnit6A==", + "dependencies": { + "ts-custom-error": "^3.2.1" + }, + "engines": { + "node": ">= 10.4.0" + }, + "optionalDependencies": { + "@zxing/text-encoding": "~0.9.0" + } + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -5700,6 +5745,18 @@ "node": ">=6.9.x" } }, + "node_modules/bn-ng-idle": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/bn-ng-idle/-/bn-ng-idle-2.0.5.tgz", + "integrity": "sha512-AmnatWSaKlBRWUdJoVrGeplmdtVfVTQfl6aiEc0j9+ng4EUnzIfTUA1AwV3Y17iI/JquZ1QR0vVml6ugv+lo7A==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=10.0.0", + "@angular/core": ">=10.0.0" + } + }, "node_modules/body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -10765,7 +10822,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "3.0.0", @@ -12053,6 +12111,11 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, "node_modules/karma": { "version": "6.3.20", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", @@ -16775,7 +16838,8 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -17247,18 +17311,6 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -18571,6 +18623,14 @@ "node": ">=8" } }, + "node_modules/ts-custom-error": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", + "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/ts-node": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", @@ -21362,6 +21422,15 @@ "scriptjs": "^2.5.9" } }, + "@capacitor-community/barcode-scanner": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@capacitor-community/barcode-scanner/-/barcode-scanner-4.0.1.tgz", + "integrity": "sha512-acuhDU2mqskSeCIQMc5TGNnDszXXs4IqEES+3C2JDiq+MkJMTr+B2Dhq4k55hlkRFMOumMhlnbr2R9G6qyFPhw==", + "requires": { + "@zxing/browser": "^0.1.3", + "@zxing/library": "^0.20.0" + } + }, "@capacitor/android": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.0.5.tgz", @@ -23393,6 +23462,29 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "@zxing/browser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@zxing/browser/-/browser-0.1.4.tgz", + "integrity": "sha512-WYjaav7St4sj/u/Km2llE4NU2Pq3JFIWnczr0tmyCC1KUlp08rV3qpu7iiEB4kOx/CgcCzrSebNnSmFt5B3IFg==", + "requires": { + "@zxing/text-encoding": "^0.9.0" + } + }, + "@zxing/library": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.20.0.tgz", + "integrity": "sha512-6Ev6rcqVjMakZFIDvbUf0dtpPGeZMTfyxYg4HkVWioWeN7cRcnUWT3bU6sdohc82O1nPXcjq6WiGfXX2Pnit6A==", + "requires": { + "@zxing/text-encoding": "~0.9.0", + "ts-custom-error": "^3.2.1" + } + }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -23914,6 +24006,14 @@ "minimist": "^1.2.0" } }, + "bn-ng-idle": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/bn-ng-idle/-/bn-ng-idle-2.0.5.tgz", + "integrity": "sha512-AmnatWSaKlBRWUdJoVrGeplmdtVfVTQfl6aiEc0j9+ng4EUnzIfTUA1AwV3Y17iI/JquZ1QR0vVml6ugv+lo7A==", + "requires": { + "tslib": "^2.3.0" + } + }, "body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -27714,7 +27814,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "ini": { "version": "3.0.0", @@ -28679,6 +28780,11 @@ } } }, + "jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, "karma": { "version": "6.3.20", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", @@ -32153,7 +32259,8 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -32529,15 +32636,6 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -33522,6 +33620,11 @@ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, + "ts-custom-error": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", + "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==" + }, "ts-node": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", diff --git a/package.json b/package.json index 146f8f1..725fb4f 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,9 @@ "@ionic/angular": "^6.1.9", "angularx-qrcode": "^14.0.0", "bn-ng-idle": "^2.0.5", + "jwt-decode": "^3.1.2", "onesignal-cordova-plugin": "^5.0.0-beta-02", "rxjs": "~6.6.0", - "sha.js": "^2.4.11", "tslib": "^2.2.0", "zone.js": "~0.11.4" }, diff --git a/src/app/pages/login/login.page.ts b/src/app/pages/login/login.page.ts index d6e5e7a..e89edc2 100644 --- a/src/app/pages/login/login.page.ts +++ b/src/app/pages/login/login.page.ts @@ -7,7 +7,7 @@ import { environment} from "../../../environments/environment"; import { AlertController } from '@ionic/angular'; import { Preferences } from '@capacitor/preferences'; import { Capacitor } from '@capacitor/core'; -import { shajs } from 'sha.js'; +import jwt_decode from "jwt-decode"; import { SignInWithApple, SignInWithAppleResponse, @@ -108,6 +108,7 @@ getBlogData(){ moveToStartScan(){ this.router.navigate(['startscan']); } + onLoginApple() { // -> 'web', 'ios' or 'android' @@ -143,31 +144,103 @@ getBlogData(){ nonce: nonce, }; + // https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple + SignInWithApple.authorize(options) .then((result: SignInWithAppleResponse) => { // Handle user information console.log("response", result.response); + /* + { + "identityToken":"eyJraWQiOiJZdXlYb1kiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLndyZW5jaGJvYXJkLnVzZXJzIiwiZXhwIjoxNjk0MzkzMzE3LCJpYXQiOjE2OTQzMDY5MTcsInN1YiI6IjAwMTgxMC4yMGU3NTAyOGQ0OWM0MmQ4YjQzMGI0MmQxZDc0ODdmMy4xMTU3Iiwibm9uY2UiOiIxLnB1ZmJwZGFhMzYiLCJjX2hhc2giOiJQRE1PNXNGa2pjOEtPclNNZDRjUGZnIiwiZW1haWwiOiJhY2lkdW1pcmFlQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjoidHJ1ZSIsImF1dGhfdGltZSI6MTY5NDMwNjkxNywibm9uY2Vfc3VwcG9ydGVkIjp0cnVlLCJyZWFsX3VzZXJfc3RhdHVzIjoyfQ.fEnzaVgB2JaOZbQm2fkpC_J8if5tIIfAphQptZ9Bxp2wrjnDsGvN1b0gvB3KBswv7d6n4A1U46GpaGpShJDhN-e2lKw_lzgFJlRi9-1B-Fudp_gzK61r6W8JzzbPiD0GZgfp_ITPDdxdC7hzixVx4TW8djrV4TIXYjus0b5XnzqRVz2t3ed4Et55s_SZ53SVhM9qnDruVB-KgeGrvDVUks71iM1etuP2vO3xsSFoiKfMEcankX3JUJaCNRSdvVVeUBqH9TfhvmHrCopjnlJ8N2B8o8RDhbnt99OAJtE_dw_Qt5YAAg2ITYQVLBb2dniJ5FBsOBBwbiA0-W1hPJ3RpQ","authorizationCode":"ce0061e5858a34e468a373c3ea7344cdb.0.rryrq.rK6JjdqlVVi6S9coEcTgVQ", + "email":null, + "givenName":null, + "familyName":null, + "user":"001810.20e75028d49c42d8b430b42d1d7487f3.1157" + } + */ // result.response.user // result.response.identityToken // result.response.email: null // result.response.givenName: null // result.response.familyName: null - // Validate token with server and create new session - this.showAlert("Error", "Token validation handling is not implemented!"); + var decoded = jwt_decode(result.response.identityToken); - // this.sendOauthConnectRequest(OauthProvider.apple, result.response.identityToken).subscribe(); + // https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api/authenticating_users_with_sign_in_with_apple + console.log(decoded); + /* + { + "iss": "https://appleid.apple.com", + "aud": "com.wrenchboard.users", + "exp": 1694393317, + "iat": 1694306917, + "sub": "001810.20e75028d49c42d8b430b42d1d7487f3.1157", + "nonce": "1.pufbpdaa36", + "c_hash": "PDMO5sFkjc8KOrSMd4cPfg", + "email": "acidumirae@gmail.com", + "email_verified": "true", + "auth_time": 1694306917, + "nonce_supported": true, + "real_user_status": 2 + } + */ + // real_user_status => The possible values are: 0 (or Unsupported), 1 (or Unknown), 2 (or LikelyReal). + + const oauth2Data = { + "auth_type": "APPLE", + "identityToken": result.response.identityToken, + "email":result.response.email, + "givenName":result.response.givenName, + "familyName":result.response.familyName, + "user":result.response.user, + "authorizationCode":result.response.authorizationCode, + "sub": decoded["sub"], + "jwt_email": decoded["email"], + "email_verified": decoded["email_verified"], + "real_user_status": decoded["real_user_status"] + }; + //console.log(oauth2Data); + + this.username = decoded["email"] ?? result.response.email; + + // Validate token with server and create new session + this.wrenchService.authStart(oauth2Data).subscribe( + loginResult => { + console.log(loginResult); + this.loginResult = loginResult; + console.log("INTERNAL RETURN->" + this.loginResult.internal_return); + /* + localStorage.setItem("member_id", `${loginResult.data.member_id}`); + localStorage.setItem("uid", `${loginResult.data.uid}`); + localStorage.setItem("session_token", `${loginResult.data.session}`); + dispatch(updateUserDetails({...loginResult.data})); + */ + if (loginResult != null && loginResult.internal_return == 100 && this.sessionDataProviderService.ConstructGlobalSessionData(this.loginResult) == true) { + const setName = async () => { + await Preferences.set({ + key: 'username', + value: this.username, + }); + }; + + + this.getBlogData(); + this.router.navigate(['tabs/tab1']); + } + else{ + this.showAlert("Error","Invalid username/password"); + } + } + ); }) - .catch(error => { - // Handle error + .catch((error) => { this.showAlert("Error", error); + console.log(error); }); console.log("onLoginApple() out"); } - /* - {"identityToken":"eyJraWQiOiJZdXlYb1kiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLndyZW5jaGJvYXJkLnVzZXJzIiwiZXhwIjoxNjk0MzkzMzE3LCJpYXQiOjE2OTQzMDY5MTcsInN1YiI6IjAwMTgxMC4yMGU3NTAyOGQ0OWM0MmQ4YjQzMGI0MmQxZDc0ODdmMy4xMTU3Iiwibm9uY2UiOiIxLnB1ZmJwZGFhMzYiLCJjX2hhc2giOiJQRE1PNXNGa2pjOEtPclNNZDRjUGZnIiwiZW1haWwiOiJhY2lkdW1pcmFlQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjoidHJ1ZSIsImF1dGhfdGltZSI6MTY5NDMwNjkxNywibm9uY2Vfc3VwcG9ydGVkIjp0cnVlLCJyZWFsX3VzZXJfc3RhdHVzIjoyfQ.fEnzaVgB2JaOZbQm2fkpC_J8if5tIIfAphQptZ9Bxp2wrjnDsGvN1b0gvB3KBswv7d6n4A1U46GpaGpShJDhN-e2lKw_lzgFJlRi9-1B-Fudp_gzK61r6W8JzzbPiD0GZgfp_ITPDdxdC7hzixVx4TW8djrV4TIXYjus0b5XnzqRVz2t3ed4Et55s_SZ53SVhM9qnDruVB-KgeGrvDVUks71iM1etuP2vO3xsSFoiKfMEcankX3JUJaCNRSdvVVeUBqH9TfhvmHrCopjnlJ8N2B8o8RDhbnt99OAJtE_dw_Qt5YAAg2ITYQVLBb2dniJ5FBsOBBwbiA0-W1hPJ3RpQ","authorizationCode":"ce0061e5858a34e468a373c3ea7344cdb.0.rryrq.rK6JjdqlVVi6S9coEcTgVQ","email":null,"givenName":null,"familyName":null, - "user":"001810.20e75028d49c42d8b430b42d1d7487f3.1157"} - */ + appleTokenReceived(event: any) { console.log(event); this.appleSignInAbortController.abort(); diff --git a/src/app/services/wrench.service.ts b/src/app/services/wrench.service.ts index fcd92dc..bba2498 100644 --- a/src/app/services/wrench.service.ts +++ b/src/app/services/wrench.service.ts @@ -89,11 +89,15 @@ export class WrenchService { loginUser(loginData) { return this.getPostData('userlogin',loginData); } -// - qrLoginUser(loginData) { - return this.getPostData('qrlogin',loginData); - } + authStart(authData) { + return this.getPostData("authstart", authData); + } + + qrLoginUser(loginData) { + return this.getPostData('qrlogin',loginData); + } + getBlogData(blogReq){ //const blogReq=[]; return this.getPostData('blogdata',blogReq);