react-native-nitro-auth 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +50 -0
  2. package/android/build.gradle +7 -2
  3. package/android/src/main/cpp/PlatformAuth+Android.cpp +14 -3
  4. package/android/src/main/java/com/auth/AuthAdapter.kt +100 -3
  5. package/cpp/HybridAuth.cpp +58 -13
  6. package/cpp/HybridAuth.hpp +8 -0
  7. package/cpp/PlatformAuth.hpp +2 -1
  8. package/ios/PlatformAuth+iOS.mm +22 -4
  9. package/lib/commonjs/Auth.web.js +48 -10
  10. package/lib/commonjs/Auth.web.js.map +1 -1
  11. package/lib/commonjs/AuthStorage.nitro.js +6 -0
  12. package/lib/commonjs/AuthStorage.nitro.js.map +1 -0
  13. package/lib/commonjs/index.js +12 -0
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/index.web.js +12 -0
  16. package/lib/commonjs/index.web.js.map +1 -1
  17. package/lib/module/Auth.web.js +48 -10
  18. package/lib/module/Auth.web.js.map +1 -1
  19. package/lib/module/AuthStorage.nitro.js +4 -0
  20. package/lib/module/AuthStorage.nitro.js.map +1 -0
  21. package/lib/module/index.js +1 -0
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/index.web.js +1 -0
  24. package/lib/module/index.web.js.map +1 -1
  25. package/lib/typescript/Auth.nitro.d.ts +4 -0
  26. package/lib/typescript/Auth.nitro.d.ts.map +1 -1
  27. package/lib/typescript/Auth.web.d.ts +8 -1
  28. package/lib/typescript/Auth.web.d.ts.map +1 -1
  29. package/lib/typescript/AuthStorage.nitro.d.ts +19 -0
  30. package/lib/typescript/AuthStorage.nitro.d.ts.map +1 -0
  31. package/lib/typescript/index.d.ts +1 -0
  32. package/lib/typescript/index.d.ts.map +1 -1
  33. package/lib/typescript/index.web.d.ts +1 -0
  34. package/lib/typescript/index.web.d.ts.map +1 -1
  35. package/nitrogen/generated/android/NitroAuth+autolinking.cmake +1 -0
  36. package/nitrogen/generated/shared/c++/HybridAuthSpec.cpp +2 -0
  37. package/nitrogen/generated/shared/c++/HybridAuthSpec.hpp +6 -0
  38. package/nitrogen/generated/shared/c++/HybridAuthStorageAdapterSpec.cpp +23 -0
  39. package/nitrogen/generated/shared/c++/HybridAuthStorageAdapterSpec.hpp +65 -0
  40. package/nitrogen/generated/shared/c++/LoginOptions.hpp +6 -2
  41. package/package.json +1 -1
  42. package/react-native-nitro-auth.podspec +1 -1
  43. package/src/Auth.nitro.ts +5 -0
  44. package/src/Auth.web.ts +71 -11
  45. package/src/AuthStorage.nitro.ts +17 -0
  46. package/src/index.ts +1 -0
  47. package/src/index.web.ts +1 -0
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # react-native-nitro-auth
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/react-native-nitro-auth?style=flat-square)](https://www.npmjs.com/package/react-native-nitro-auth)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
5
+ [![Nitro Modules](https://img.shields.io/badge/Powered%20by-Nitro%20Modules-blueviolet?style=flat-square)](https://nitro.margelo.com)
6
+
3
7
  🚀 **High-performance, JSI-powered Authentication for React Native.**
4
8
 
5
9
  Nitro Auth is a modern authentication library for React Native built on top of [Nitro Modules](https://github.com/mrousavy/nitro). It provides a unified, type-safe API for Google and Apple Sign-In with zero-bridge overhead.
@@ -23,6 +27,9 @@ Nitro Auth is designed to replace legacy modules like `@react-native-google-sign
23
27
  - **Expo Ready**: Comes with a powerful Config Plugin for zero-config setup.
24
28
  - **Cross-Platform**: Unified API for iOS, Android, and Web.
25
29
  - **Auto-Refresh**: Synchronous access to tokens with automatic silent refresh.
30
+ - **Google One-Tap**: Modern login experience on Android using Credential Manager.
31
+ - **Custom Storage**: Pluggable storage adapters for secure persistence (e.g., Keychain).
32
+ - **Refresh Interceptors**: Listen to token updates globally.
26
33
 
27
34
  ## Installation
28
35
 
@@ -182,6 +189,49 @@ if (user?.serverAuthCode) {
182
189
  }
183
190
  ```
184
191
 
192
+ ### Custom Storage Adapter
193
+
194
+ By default, Nitro Auth uses standard local storage. You can provide a custom adapter for better security (e.g., using `react-native-keychain`):
195
+
196
+ ```ts
197
+ import { AuthService, AuthStorageAdapter } from "react-native-nitro-auth";
198
+
199
+ const myStorage: AuthStorageAdapter = {
200
+ save: (key, value) => {
201
+ /* Save to Keychain */
202
+ },
203
+ load: (key) => {
204
+ /* Load from Keychain */
205
+ },
206
+ remove: (key) => {
207
+ /* Clear from Keychain */
208
+ },
209
+ };
210
+
211
+ AuthService.setStorageAdapter(myStorage);
212
+ ```
213
+
214
+ ### Token Refresh Listeners
215
+
216
+ Perfect for updating your API client (e.g., Axios/Fetch) whenever tokens are refreshed in the background:
217
+
218
+ ```ts
219
+ AuthService.onTokensRefreshed((tokens) => {
220
+ console.log("Tokens were updated!", tokens.accessToken);
221
+ apiClient.defaults.headers.common[
222
+ "Authorization"
223
+ ] = `Bearer ${tokens.accessToken}`;
224
+ });
225
+ ```
226
+
227
+ ### Google One-Tap (Android)
228
+
229
+ Explicitly enable the modern One-Tap flow on Android:
230
+
231
+ ```ts
232
+ await login("google", { useOneTap: true });
233
+ ```
234
+
185
235
  ## API Reference
186
236
 
187
237
  ### useAuth Hook
@@ -89,12 +89,17 @@ repositories {
89
89
 
90
90
  dependencies {
91
91
  implementation "com.facebook.react:react-native:+"
92
- implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
92
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.24"
93
93
  implementation project(":react-native-nitro-modules")
94
94
 
95
95
  // Google Sign-In SDK (full scope support)
96
- implementation "com.google.android.gms:play-services-auth:21.3.0"
96
+ implementation "com.google.android.gms:play-services-auth:21.2.0"
97
97
 
98
98
  // Activity result APIs
99
99
  implementation "androidx.activity:activity-ktx:1.9.3"
100
+
101
+ // Google Credential Manager (One-Tap / Passkeys)
102
+ implementation "androidx.credentials:credentials:1.5.0"
103
+ implementation "androidx.credentials:credentials-play-services-auth:1.5.0"
104
+ implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
100
105
  }
@@ -24,7 +24,7 @@ static std::shared_ptr<Promise<AuthTokens>> gRefreshPromise;
24
24
  static std::shared_ptr<Promise<std::optional<AuthUser>>> gSilentPromise;
25
25
  static std::mutex gMutex;
26
26
 
27
- std::shared_ptr<Promise<AuthUser>> PlatformAuth::login(AuthProvider provider, const std::vector<std::string>& scopes, const std::optional<std::string>& loginHint) {
27
+ std::shared_ptr<Promise<AuthUser>> PlatformAuth::login(AuthProvider provider, const std::optional<LoginOptions>& options) {
28
28
  auto promise = Promise<AuthUser>::create();
29
29
  auto contextPtr = static_cast<jobject>(AuthCache::getAndroidContext());
30
30
  if (!contextPtr) {
@@ -38,6 +38,16 @@ std::shared_ptr<Promise<AuthUser>> PlatformAuth::login(AuthProvider provider, co
38
38
  }
39
39
 
40
40
  std::string providerStr = (provider == AuthProvider::GOOGLE) ? "google" : "apple";
41
+ std::vector<std::string> scopes = {"email", "profile"};
42
+ std::optional<std::string> loginHint;
43
+ bool useOneTap = false;
44
+
45
+ if (options) {
46
+ if (options->scopes) scopes = *options->scopes;
47
+ loginHint = options->loginHint;
48
+ useOneTap = options->useOneTap.value_or(false);
49
+ }
50
+
41
51
  JNIEnv* env = Environment::current();
42
52
  jclass stringClass = env->FindClass("java/lang/String");
43
53
  jobjectArray jScopes = env->NewObjectArray(scopes.size(), stringClass, nullptr);
@@ -48,13 +58,14 @@ std::shared_ptr<Promise<AuthUser>> PlatformAuth::login(AuthProvider provider, co
48
58
  jstring jLoginHint = loginHint.has_value() ? make_jstring(loginHint.value()).get() : nullptr;
49
59
  jclass adapterClass = env->FindClass("com/auth/AuthAdapter");
50
60
  jmethodID loginMethod = env->GetStaticMethodID(adapterClass, "loginSync",
51
- "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V");
61
+ "(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Z)V");
52
62
  env->CallStaticVoidMethod(adapterClass, loginMethod,
53
63
  contextPtr,
54
64
  make_jstring(providerStr).get(),
55
65
  nullptr,
56
66
  jScopes,
57
- jLoginHint);
67
+ jLoginHint,
68
+ (jboolean)useOneTap);
58
69
 
59
70
  return promise;
60
71
  }
@@ -10,12 +10,23 @@ import com.google.android.gms.auth.api.signin.GoogleSignInOptions
10
10
  import com.google.android.gms.common.GoogleApiAvailability
11
11
  import com.google.android.gms.common.ConnectionResult
12
12
  import com.google.android.gms.common.api.Scope
13
+ import androidx.credentials.CredentialManager
14
+ import androidx.credentials.GetCredentialRequest
15
+ import androidx.credentials.GetCredentialResponse
16
+ import com.google.android.libraries.identity.googleid.GetGoogleIdOption
17
+ import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential
18
+ import kotlinx.coroutines.CoroutineScope
19
+ import kotlinx.coroutines.Dispatchers
20
+ import kotlinx.coroutines.launch
21
+ import android.app.Activity
22
+ import android.app.Application
13
23
 
14
24
  object AuthAdapter {
15
25
  private const val TAG = "AuthAdapter"
16
26
  private const val PREF_NAME = "nitro_auth"
17
27
 
18
28
  private var appContext: Context? = null
29
+ private var currentActivity: Activity? = null
19
30
  private var googleSignInClient: GoogleSignInClient? = null
20
31
  private var pendingScopes: List<String> = emptyList()
21
32
 
@@ -45,7 +56,19 @@ object AuthAdapter {
45
56
  private external fun nativeOnRefreshError(error: String)
46
57
 
47
58
  fun initialize(context: Context) {
48
- appContext = context.applicationContext
59
+ val app = context.applicationContext as? Application
60
+ appContext = app
61
+
62
+ app?.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks {
63
+ override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { currentActivity = activity }
64
+ override fun onActivityStarted(activity: Activity) { currentActivity = activity }
65
+ override fun onActivityResumed(activity: Activity) { currentActivity = activity }
66
+ override fun onActivityPaused(activity: Activity) { if (currentActivity == activity) currentActivity = null }
67
+ override fun onActivityStopped(activity: Activity) { if (currentActivity == activity) currentActivity = null }
68
+ override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}
69
+ override fun onActivityDestroyed(activity: Activity) { if (currentActivity == activity) currentActivity = null }
70
+ })
71
+
49
72
  try {
50
73
  System.loadLibrary("NitroAuth")
51
74
  nativeInitialize(appContext!!)
@@ -73,7 +96,7 @@ object AuthAdapter {
73
96
  }
74
97
 
75
98
  @JvmStatic
76
- fun loginSync(context: Context, provider: String, googleClientId: String?, scopes: Array<String>?, loginHint: String?) {
99
+ fun loginSync(context: Context, provider: String, googleClientId: String?, scopes: Array<String>?, loginHint: String?, useOneTap: Boolean) {
77
100
  if (provider == "apple") {
78
101
  nativeOnLoginError("Apple Sign-In is not supported on Android.")
79
102
  return
@@ -94,10 +117,84 @@ object AuthAdapter {
94
117
  val requestedScopes = scopes?.toList() ?: listOf("email", "profile")
95
118
  pendingScopes = requestedScopes
96
119
 
97
- val intent = GoogleSignInActivity.createIntent(ctx, clientId, requestedScopes.toTypedArray(), loginHint)
120
+ if (useOneTap) {
121
+ loginOneTap(context, clientId, requestedScopes)
122
+ } else {
123
+ val intent = GoogleSignInActivity.createIntent(ctx, clientId, requestedScopes.toTypedArray(), loginHint)
124
+ intent.addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK)
125
+ ctx.startActivity(intent)
126
+ }
127
+ }
128
+
129
+ private fun loginOneTap(context: Context, clientId: String, scopes: List<String>) {
130
+ val activity = currentActivity ?: context as? Activity
131
+ if (activity == null) {
132
+ Log.w(TAG, "No Activity context available for One-Tap, falling back to legacy")
133
+ return loginLegacy(context, clientId, scopes)
134
+ }
135
+
136
+ val credentialManager = CredentialManager.create(activity)
137
+ val googleIdOption = GetGoogleIdOption.Builder()
138
+ .setFilterByAuthorizedAccounts(false)
139
+ .setServerClientId(clientId)
140
+ .setAutoSelectEnabled(false) // Disable auto-select for testing so the sheet always shows
141
+ .build()
142
+
143
+ val request = GetCredentialRequest.Builder()
144
+ .addCredentialOption(googleIdOption)
145
+ .build()
146
+
147
+ CoroutineScope(Dispatchers.Main).launch {
148
+ try {
149
+ val result = credentialManager.getCredential(context = activity, request = request)
150
+ handleCredentialResponse(result, scopes)
151
+ } catch (e: Exception) {
152
+ Log.w(TAG, "One-Tap failed, falling back to legacy: ${e.message}")
153
+ loginLegacy(context, clientId, scopes)
154
+ }
155
+ }
156
+ }
157
+
158
+ private fun loginLegacy(context: Context, clientId: String, scopes: List<String>) {
159
+ val ctx = appContext ?: context.applicationContext
160
+ val intent = GoogleSignInActivity.createIntent(ctx, clientId, scopes.toTypedArray(), null)
161
+ intent.addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK)
98
162
  ctx.startActivity(intent)
99
163
  }
100
164
 
165
+ private fun handleCredentialResponse(response: GetCredentialResponse, scopes: List<String>) {
166
+ val credential = response.credential
167
+ val googleIdTokenCredential = try {
168
+ if (credential is GoogleIdTokenCredential) {
169
+ credential
170
+ } else if (credential.type == "com.google.android.libraries.identity.googleid.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL") {
171
+ GoogleIdTokenCredential.createFrom(credential.data)
172
+ } else {
173
+ null
174
+ }
175
+ } catch (e: Exception) {
176
+ Log.e(TAG, "Failed to parse Google ID token credential: ${e.message}")
177
+ null
178
+ }
179
+
180
+ if (googleIdTokenCredential != null) {
181
+ nativeOnLoginSuccess(
182
+ "google",
183
+ googleIdTokenCredential.id,
184
+ googleIdTokenCredential.displayName,
185
+ googleIdTokenCredential.profilePictureUri?.toString(),
186
+ googleIdTokenCredential.idToken,
187
+ null,
188
+ null,
189
+ scopes.toTypedArray(),
190
+ null
191
+ )
192
+ } else {
193
+ Log.w(TAG, "Unsupported credential type: ${credential.type}")
194
+ nativeOnLoginError("Unsupported credential type: ${credential.type}")
195
+ }
196
+ }
197
+
101
198
  @JvmStatic
102
199
  fun requestScopesSync(context: Context, scopes: Array<String>) {
103
200
  val ctx = appContext ?: context.applicationContext
@@ -29,7 +29,14 @@ bool HybridAuth::getHasPlayServices() {
29
29
 
30
30
  void HybridAuth::loadFromCache() {
31
31
  std::lock_guard<std::mutex> lock(_mutex);
32
- auto json = AuthCache::getUserJson();
32
+ std::optional<std::string> json;
33
+
34
+ if (_storageAdapter) {
35
+ json = _storageAdapter->load("nitro_auth_user");
36
+ } else {
37
+ json = AuthCache::getUserJson();
38
+ }
39
+
33
40
  if (json) {
34
41
  _currentUser = JSONSerializer::deserialize(*json);
35
42
  if (_currentUser && _currentUser->scopes) {
@@ -41,9 +48,17 @@ void HybridAuth::loadFromCache() {
41
48
  void HybridAuth::saveToCache(const std::optional<AuthUser>& user) {
42
49
  if (user) {
43
50
  auto json = JSONSerializer::serialize(*user);
44
- AuthCache::setUserJson(json);
51
+ if (_storageAdapter) {
52
+ _storageAdapter->save("nitro_auth_user", json);
53
+ } else {
54
+ AuthCache::setUserJson(json);
55
+ }
45
56
  } else {
46
- AuthCache::clear();
57
+ if (_storageAdapter) {
58
+ _storageAdapter->remove("nitro_auth_user");
59
+ } else {
60
+ AuthCache::clear();
61
+ }
47
62
  }
48
63
  }
49
64
 
@@ -73,6 +88,17 @@ std::function<void()> HybridAuth::onAuthStateChanged(const std::function<void(co
73
88
  };
74
89
  }
75
90
 
91
+ std::function<void()> HybridAuth::onTokensRefreshed(const std::function<void(const AuthTokens&)>& callback) {
92
+ std::lock_guard<std::mutex> lock(_mutex);
93
+ int id = _nextTokenListenerId++;
94
+ _tokenListeners[id] = callback;
95
+
96
+ return [this, id]() {
97
+ std::lock_guard<std::mutex> lock(_mutex);
98
+ _tokenListeners.erase(id);
99
+ };
100
+ }
101
+
76
102
  void HybridAuth::logout() {
77
103
  {
78
104
  std::lock_guard<std::mutex> lock(_mutex);
@@ -86,20 +112,16 @@ void HybridAuth::logout() {
86
112
 
87
113
  std::shared_ptr<Promise<void>> HybridAuth::login(AuthProvider provider, const std::optional<LoginOptions>& options) {
88
114
  auto promise = Promise<void>::create();
89
- std::vector<std::string> scopes;
90
- std::optional<std::string> loginHint;
91
- if (options) {
92
- if (options->scopes) scopes = *options->scopes;
93
- loginHint = options->loginHint;
94
- }
95
115
 
96
- auto loginPromise = PlatformAuth::login(provider, scopes, loginHint);
97
- loginPromise->addOnResolvedListener([this, promise, scopes](const AuthUser& user) {
116
+ auto loginPromise = PlatformAuth::login(provider, options);
117
+ loginPromise->addOnResolvedListener([this, promise, options](const AuthUser& user) {
98
118
  {
99
119
  std::lock_guard<std::mutex> lock(_mutex);
100
120
  _currentUser = user;
101
- _grantedScopes = scopes;
102
- if (_currentUser) _currentUser->scopes = scopes;
121
+ if (options && options->scopes) {
122
+ _grantedScopes = *options->scopes;
123
+ }
124
+ if (_currentUser) _currentUser->scopes = _grantedScopes;
103
125
  saveToCache(_currentUser);
104
126
  }
105
127
  notifyAuthStateChanged();
@@ -202,6 +224,7 @@ std::shared_ptr<Promise<AuthTokens>> HybridAuth::refreshToken() {
202
224
  saveToCache(_currentUser);
203
225
  }
204
226
  }
227
+ notifyTokensRefreshed(tokens);
205
228
  notifyAuthStateChanged();
206
229
  promise->resolve(tokens);
207
230
  });
@@ -216,4 +239,26 @@ void HybridAuth::setLoggingEnabled(bool enabled) {
216
239
  sLoggingEnabled = enabled;
217
240
  }
218
241
 
242
+ void HybridAuth::setStorageAdapter(const std::optional<std::shared_ptr<HybridAuthStorageAdapterSpec>>& adapter) {
243
+ std::lock_guard<std::mutex> lock(_mutex);
244
+ _storageAdapter = adapter.value_or(nullptr);
245
+ if (_storageAdapter) {
246
+ loadFromCache();
247
+ notifyAuthStateChanged();
248
+ }
249
+ }
250
+
251
+ void HybridAuth::notifyTokensRefreshed(const AuthTokens& tokens) {
252
+ std::vector<std::function<void(const AuthTokens&)>> listeners;
253
+ {
254
+ std::lock_guard<std::mutex> lock(_mutex);
255
+ for (auto const& [id, listener] : _tokenListeners) {
256
+ listeners.push_back(listener);
257
+ }
258
+ }
259
+ for (const auto& listener : listeners) {
260
+ listener(tokens);
261
+ }
262
+ }
263
+
219
264
  } // namespace margelo::nitro::NitroAuth
@@ -28,18 +28,26 @@ public:
28
28
 
29
29
  void logout() override;
30
30
  std::function<void()> onAuthStateChanged(const std::function<void(const std::optional<AuthUser>&)>& callback) override;
31
+ std::function<void()> onTokensRefreshed(const std::function<void(const AuthTokens&)>& callback) override;
31
32
  void setLoggingEnabled(bool enabled) override;
33
+ void setStorageAdapter(const std::optional<std::shared_ptr<HybridAuthStorageAdapterSpec>>& adapter) override;
32
34
 
33
35
  private:
34
36
  void loadFromCache();
35
37
  void saveToCache(const std::optional<AuthUser>& user);
36
38
  void notifyAuthStateChanged();
39
+ void notifyTokensRefreshed(const AuthTokens& tokens);
37
40
 
38
41
  private:
39
42
  std::optional<AuthUser> _currentUser;
40
43
  std::vector<std::string> _grantedScopes;
41
44
  std::map<int, std::function<void(const std::optional<AuthUser>&)>> _listeners;
42
45
  int _nextListenerId = 0;
46
+
47
+ std::shared_ptr<HybridAuthStorageAdapterSpec> _storageAdapter;
48
+ std::map<int, std::function<void(const AuthTokens&)>> _tokenListeners;
49
+ int _nextTokenListenerId = 0;
50
+
43
51
  std::mutex _mutex;
44
52
 
45
53
  static constexpr auto TAG = "Auth";
@@ -3,6 +3,7 @@
3
3
  #include "AuthProvider.hpp"
4
4
  #include "AuthUser.hpp"
5
5
  #include "AuthTokens.hpp"
6
+ #include "LoginOptions.hpp"
6
7
  #include <NitroModules/Promise.hpp>
7
8
  #include <memory>
8
9
  #include <vector>
@@ -14,7 +15,7 @@ using namespace margelo::nitro;
14
15
 
15
16
  class PlatformAuth {
16
17
  public:
17
- static std::shared_ptr<Promise<AuthUser>> login(AuthProvider provider, const std::vector<std::string>& scopes = {}, const std::optional<std::string>& loginHint = std::nullopt);
18
+ static std::shared_ptr<Promise<AuthUser>> login(AuthProvider provider, const std::optional<LoginOptions>& options = std::nullopt);
18
19
  static std::shared_ptr<Promise<AuthUser>> requestScopes(const std::vector<std::string>& scopes);
19
20
  static std::shared_ptr<Promise<AuthTokens>> refreshToken();
20
21
  static std::shared_ptr<Promise<std::optional<AuthUser>>> silentRestore();
@@ -11,14 +11,32 @@
11
11
  #import "react_native_nitro_auth-Swift.h"
12
12
  #endif
13
13
 
14
+ #include "LoginOptions.hpp"
15
+
14
16
  namespace margelo::nitro::NitroAuth {
15
17
 
16
- std::shared_ptr<Promise<AuthUser>> PlatformAuth::login(AuthProvider provider, const std::vector<std::string>& scopes, const std::optional<std::string>& loginHint) {
18
+ std::shared_ptr<Promise<AuthUser>> PlatformAuth::login(AuthProvider provider, const std::optional<LoginOptions>& options) {
17
19
  auto promise = Promise<AuthUser>::create();
18
20
  NSString* providerStr = provider == AuthProvider::GOOGLE ? @"google" : @"apple";
19
- NSMutableArray* scopesArray = [NSMutableArray arrayWithCapacity:scopes.size()];
20
- for (const auto& scope : scopes) [scopesArray addObject:[NSString stringWithUTF8String:scope.c_str()]];
21
- NSString* hintStr = loginHint.has_value() ? [NSString stringWithUTF8String:loginHint->c_str()] : nil;
21
+
22
+ NSMutableArray* scopesArray = [NSMutableArray array];
23
+ NSString* hintStr = nil;
24
+
25
+ if (options.has_value()) {
26
+ if (options->scopes.has_value()) {
27
+ for (const auto& scope : *options->scopes) {
28
+ [scopesArray addObject:[NSString stringWithUTF8String:scope.c_str()]];
29
+ }
30
+ }
31
+ if (options->loginHint.has_value()) {
32
+ hintStr = [NSString stringWithUTF8String:options->loginHint->c_str()];
33
+ }
34
+ }
35
+
36
+ // Default scopes if none provided
37
+ if (scopesArray.count == 0) {
38
+ [scopesArray addObjectsFromArray:@[@"openid", @"email", @"profile"]];
39
+ }
22
40
 
23
41
  [AuthAdapter loginWithProvider:providerStr scopes:scopesArray loginHint:hintStr completion:^(NSDictionary* _Nullable data, NSString* _Nullable error) {
24
42
  if (error != nil) {
@@ -19,24 +19,35 @@ const getConfig = () => {
19
19
  class AuthWeb {
20
20
  _grantedScopes = [];
21
21
  _listeners = [];
22
+ _tokenListeners = [];
22
23
  constructor() {
23
- const cached = localStorage.getItem(CACHE_KEY);
24
+ this.loadFromCache();
25
+ }
26
+ loadFromCache() {
27
+ const cached = this._storageAdapter ? this._storageAdapter.load(CACHE_KEY) : localStorage.getItem(CACHE_KEY);
24
28
  if (cached) {
25
29
  try {
26
30
  this._currentUser = JSON.parse(cached);
27
31
  } catch {
28
- localStorage.removeItem(CACHE_KEY);
32
+ this.removeFromCache(CACHE_KEY);
29
33
  }
30
34
  }
31
- const scopes = localStorage.getItem(SCOPES_KEY);
35
+ const scopes = this._storageAdapter ? this._storageAdapter.load(SCOPES_KEY) : localStorage.getItem(SCOPES_KEY);
32
36
  if (scopes) {
33
37
  try {
34
38
  this._grantedScopes = JSON.parse(scopes);
35
39
  } catch {
36
- localStorage.removeItem(SCOPES_KEY);
40
+ this.removeFromCache(SCOPES_KEY);
37
41
  }
38
42
  }
39
43
  }
44
+ removeFromCache(key) {
45
+ if (this._storageAdapter) {
46
+ this._storageAdapter.remove(key);
47
+ } else {
48
+ localStorage.removeItem(key);
49
+ }
50
+ }
40
51
  get currentUser() {
41
52
  return this._currentUser;
42
53
  }
@@ -53,6 +64,12 @@ class AuthWeb {
53
64
  this._listeners = this._listeners.filter(l => l !== callback);
54
65
  };
55
66
  }
67
+ onTokensRefreshed(callback) {
68
+ this._tokenListeners.push(callback);
69
+ return () => {
70
+ this._tokenListeners = this._tokenListeners.filter(l => l !== callback);
71
+ };
72
+ }
56
73
  notify() {
57
74
  this._listeners.forEach(l => l(this._currentUser));
58
75
  }
@@ -93,7 +110,11 @@ class AuthWeb {
93
110
  async revokeScopes(scopes) {
94
111
  _logger.logger.log("Revoking scopes:", scopes);
95
112
  this._grantedScopes = this._grantedScopes.filter(s => !scopes.includes(s));
96
- localStorage.setItem(SCOPES_KEY, JSON.stringify(this._grantedScopes));
113
+ if (this._storageAdapter) {
114
+ this._storageAdapter.save(SCOPES_KEY, JSON.stringify(this._grantedScopes));
115
+ } else {
116
+ localStorage.setItem(SCOPES_KEY, JSON.stringify(this._grantedScopes));
117
+ }
97
118
  if (this._currentUser) {
98
119
  this._currentUser.scopes = this._grantedScopes;
99
120
  this.updateUser(this._currentUser);
@@ -118,10 +139,12 @@ class AuthWeb {
118
139
  }
119
140
  _logger.logger.log("Refreshing tokens...");
120
141
  await this.loginGoogle(this._grantedScopes.length > 0 ? this._grantedScopes : DEFAULT_SCOPES);
121
- return {
142
+ const tokens = {
122
143
  accessToken: this._currentUser.accessToken,
123
144
  idToken: this._currentUser.idToken
124
145
  };
146
+ this._tokenListeners.forEach(l => l(tokens));
147
+ return tokens;
125
148
  }
126
149
  mapError(error) {
127
150
  if (error instanceof Error) {
@@ -192,7 +215,11 @@ class AuthWeb {
192
215
  const code = params.get("code");
193
216
  if (idToken) {
194
217
  this._grantedScopes = scopes;
195
- localStorage.setItem(SCOPES_KEY, JSON.stringify(scopes));
218
+ if (this._storageAdapter) {
219
+ this._storageAdapter.save(SCOPES_KEY, JSON.stringify(scopes));
220
+ } else {
221
+ localStorage.setItem(SCOPES_KEY, JSON.stringify(scopes));
222
+ }
196
223
  const user = {
197
224
  provider: "google",
198
225
  idToken,
@@ -264,18 +291,29 @@ class AuthWeb {
264
291
  logout() {
265
292
  this._currentUser = undefined;
266
293
  this._grantedScopes = [];
267
- localStorage.removeItem(CACHE_KEY);
268
- localStorage.removeItem(SCOPES_KEY);
294
+ this.removeFromCache(CACHE_KEY);
295
+ this.removeFromCache(SCOPES_KEY);
269
296
  this.notify();
270
297
  }
271
298
  updateUser(user) {
272
299
  this._currentUser = user;
273
- localStorage.setItem(CACHE_KEY, JSON.stringify(user));
300
+ if (this._storageAdapter) {
301
+ this._storageAdapter.save(CACHE_KEY, JSON.stringify(user));
302
+ } else {
303
+ localStorage.setItem(CACHE_KEY, JSON.stringify(user));
304
+ }
274
305
  this.notify();
275
306
  }
276
307
  setLoggingEnabled(enabled) {
277
308
  _logger.logger.setEnabled(enabled);
278
309
  }
310
+ setStorageAdapter(adapter) {
311
+ this._storageAdapter = adapter;
312
+ if (adapter) {
313
+ this.loadFromCache();
314
+ this.notify();
315
+ }
316
+ }
279
317
  name = "Auth";
280
318
  dispose() {}
281
319
  equals(other) {
@@ -1 +1 @@
1
- {"version":3,"names":["_logger","require","CACHE_KEY","SCOPES_KEY","DEFAULT_SCOPES","getConfig","Constants","default","expoConfig","extra","AuthWeb","_grantedScopes","_listeners","constructor","cached","localStorage","getItem","_currentUser","JSON","parse","removeItem","scopes","currentUser","grantedScopes","hasPlayServices","onAuthStateChanged","callback","push","filter","l","notify","forEach","login","provider","options","loginHint","logger","log","loginGoogle","loginApple","e","error","mapError","message","requestScopes","Error","newScopes","Set","catch","revokeScopes","s","includes","setItem","stringify","updateUser","getAccessToken","expirationTime","now","Date","refreshToken","accessToken","length","idToken","msg","toLowerCase","String","config","clientId","googleWebClientId","Promise","resolve","reject","redirectUri","window","location","origin","authUrl","URL","searchParams","set","join","Math","random","toString","slice","width","height","left","screenX","outerWidth","top","screenY","outerHeight","popup","open","checkInterval","setInterval","closed","clearInterval","url","href","startsWith","close","hash","params","URLSearchParams","get","expiresIn","code","user","undefined","serverAuthCode","parseInt","decodeGoogleJwt","token","payload","split","decoded","atob","email","name","photo","picture","appleWebClientId","script","document","createElement","src","async","onload","AppleID","auth","init","scope","redirectURI","usePopup","signIn","then","response","authorization","id_token","firstName","lastName","trim","onerror","head","appendChild","logout","setLoggingEnabled","enabled","setEnabled","dispose","equals","other","AuthModule","exports"],"sourceRoot":"../../src","sources":["Auth.web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_logger","require","CACHE_KEY","SCOPES_KEY","DEFAULT_SCOPES","getConfig","Constants","default","expoConfig","extra","AuthWeb","_grantedScopes","_listeners","_tokenListeners","constructor","loadFromCache","cached","_storageAdapter","load","localStorage","getItem","_currentUser","JSON","parse","removeFromCache","scopes","key","remove","removeItem","currentUser","grantedScopes","hasPlayServices","onAuthStateChanged","callback","push","filter","l","onTokensRefreshed","notify","forEach","login","provider","options","loginHint","logger","log","loginGoogle","loginApple","e","error","mapError","message","requestScopes","Error","newScopes","Set","catch","revokeScopes","s","includes","save","stringify","setItem","updateUser","getAccessToken","expirationTime","now","Date","refreshToken","accessToken","length","tokens","idToken","msg","toLowerCase","String","config","clientId","googleWebClientId","Promise","resolve","reject","redirectUri","window","location","origin","authUrl","URL","searchParams","set","join","Math","random","toString","slice","width","height","left","screenX","outerWidth","top","screenY","outerHeight","popup","open","checkInterval","setInterval","closed","clearInterval","url","href","startsWith","close","hash","params","URLSearchParams","get","expiresIn","code","user","undefined","serverAuthCode","parseInt","decodeGoogleJwt","token","payload","split","decoded","atob","email","name","photo","picture","appleWebClientId","script","document","createElement","src","async","onload","AppleID","auth","init","scope","redirectURI","usePopup","signIn","then","response","authorization","id_token","firstName","lastName","trim","onerror","head","appendChild","logout","setLoggingEnabled","enabled","setEnabled","setStorageAdapter","adapter","dispose","equals","other","AuthModule","exports"],"sourceRoot":"../../src","sources":["Auth.web.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=AuthStorage.nitro.js.map