diff --git a/android/build.gradle b/android/build.gradle index bb680a0..8c07713 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -129,8 +129,8 @@ dependencies { implementation "androidx.browser:browser:1.2.0" - implementation("com.authsignal:authsignal-push-android:0.2.10") - implementation("com.authsignal:authsignal-passkey-android:0.1.10") + implementation("com.authsignal:authsignal-push-android:0.2.12") + implementation("com.authsignal:authsignal-passkey-android:0.2.1") } if (isNewArchitectureEnabled()) { diff --git a/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.java b/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.java index 102e714..5814469 100644 --- a/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.java +++ b/android/src/main/java/com/authsignal/react/AuthsignalPasskeyModule.java @@ -6,10 +6,13 @@ import androidx.annotation.NonNull; import com.authsignal.passkey.AuthsignalPasskey; +import com.authsignal.passkey.models.*; +import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.WritableMap; import java.util.HashMap; import java.util.Map; @@ -65,7 +68,10 @@ public void signUp(String token, String userName, String displayName, Promise pr if (response.getError() != null) { promise.reject("signUp error", response.getError()); } else { - promise.resolve(response.getData()); + SignUpResponse signUpResponse = response.getData(); + WritableMap map = Arguments.createMap(); + map.putString("token", signUpResponse.getToken()); + promise.resolve(map); } }); } else { @@ -84,7 +90,15 @@ public void signIn(String action, String token, Promise promise) { if (response.getError() != null) { promise.reject("signIn error", response.getError()); } else { - promise.resolve(response.getData()); + SignInResponse signInResponse = response.getData(); + WritableMap map = Arguments.createMap(); + map.putBoolean("isVerified", signInResponse.isVerified()); + map.putString("token", signInResponse.getToken()); + map.putString("userId", signInResponse.getUserId()); + map.putString("userAuthenticatorId", signInResponse.getUserAuthenticatorId()); + map.putString("userName", signInResponse.getUserName()); + map.putString("userDisplayName", signInResponse.getUserDisplayName()); + promise.resolve(map); } }); } else { diff --git a/ios/AuthsignalPasskeyModule.swift b/ios/AuthsignalPasskeyModule.swift index 793480d..3b25772 100644 --- a/ios/AuthsignalPasskeyModule.swift +++ b/ios/AuthsignalPasskeyModule.swift @@ -43,7 +43,11 @@ class AuthsignalPasskeyModule: NSObject { if (response.error != nil) { reject("signUp error", response.error, nil) } else { - resolve(response.data) + let signUpResponse: [String: String?] = [ + "token": response.data!.accessToken, + ] + + resolve(signUpResponse) } } } @@ -69,7 +73,16 @@ class AuthsignalPasskeyModule: NSObject { if (response.error != nil) { reject("signIn error", response.error, nil) } else { - resolve(response.data) + let signInResponse: [String: String?] = [ + "isVerified": response.data!.isVerified, + "token": response.data!.accessToken, + "userId": response.data!.userId, + "userAuthenticatorId": response.data!.userAuthenticatorId, + "userName": response.data!.username, + "userDisplayName": response.data!.userDisplayName, + ] + + resolve(signInResponse) } } } diff --git a/package.json b/package.json index 86dd133..b857750 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-authsignal", - "version": "0.3.10", + "version": "0.4.0", "description": "The official Authsignal React Native library.", "main": "lib/commonjs/index", "module": "lib/module/index", diff --git a/react-native-authsignal.podspec b/react-native-authsignal.podspec index bf8a66f..8c91a8d 100644 --- a/react-native-authsignal.podspec +++ b/react-native-authsignal.podspec @@ -17,7 +17,7 @@ Pod::Spec.new do |s| s.source_files = "ios/**/*.{h,m,mm,swift}" s.dependency "React-Core" - s.dependency 'Authsignal', '0.2.5' + s.dependency 'Authsignal', '0.3.0' # Don't install the dependencies when we run `pod install` in the old architecture. if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then diff --git a/src/passkey.ts b/src/passkey.ts index 88f0c91..c81e6f0 100644 --- a/src/passkey.ts +++ b/src/passkey.ts @@ -1,6 +1,10 @@ import { NativeModules, Platform } from 'react-native'; import { LINKING_ERROR } from './error'; -import type { AuthsignalResponse } from './types'; +import type { + AuthsignalResponse, + SignInResponse, + SignUpResponse, +} from './types'; interface ConstructorArgs { tenantID: string; @@ -49,7 +53,7 @@ export class AuthsignalPasskey { token, userName, displayName, - }: PasskeySignUpInput): Promise> { + }: PasskeySignUpInput): Promise> { await this.ensureModuleIsInitialized(); try { @@ -77,7 +81,7 @@ export class AuthsignalPasskey { action, token, autofill = false, - }: PasskeySignInInput = {}): Promise> { + }: PasskeySignInInput = {}): Promise> { await this.ensureModuleIsInitialized(); try { diff --git a/src/types.ts b/src/types.ts index 913ee8b..a8d3386 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,3 +18,16 @@ export interface TokenPayload { scope?: string; sub: string; } + +export interface SignUpResponse { + token: string; +} + +export interface SignInResponse { + isVerified: boolean; + token?: string; + userId?: string; + userAuthenticatorI?: string; + userName?: string; + userDisplayName?: string; +}