Feature request: official @perryts/google-auth package for Google Sign In
Sister request to the Apple Sign In one. Most apps that ship SIWA also need Google OAuth — and unlike Apple's, Google's binding has to handle three SDK flavors (GoogleSignIn iOS SDK, Credential Manager on Android, GoogleAuthLibrary on the desktop), which makes a one-off local fork painful to maintain.
Surface we'd expect
// @perryts/google-auth — TS surface
export declare function js_google_auth_sign_in(): Promise<string>;
export declare function js_google_auth_silent_sign_in(): Promise<string>;
export declare function js_google_auth_sign_out(): Promise<string>;
export type GoogleSignInResult =
| {
success: true;
idToken: string; // JWS — verify aud/iss server-side
accessToken?: string; // for incremental scopes; may be absent on Android Credential Manager
userId: string; // sub claim
email: string;
emailVerified: boolean;
name?: string;
pictureUrl?: string;
grantedScopes: string[];
}
| { success: false; cancelled?: boolean; error?: string };
Configuration that should flow from perry.toml:
[google_auth]
ios_client_id = "..."
android_client_id = "..."
server_client_id = "..." # for backend verification
default_scopes = ["openid", "email", "profile"]
Notes:
- iOS:
GoogleSignIn SDK via SwiftPM (already pinning is fine).
- macOS: same SDK as iOS works on macOS 13+.
- Android: prefer
androidx.credentials Credential Manager (the com.google.android.gms SDK is being deprecated end-of-2026).
- Linux/Windows: stub for now — desktop OAuth flow can be added later via system browser + loopback.
Why this matters
Same reasoning as the Apple Sign In request — a Perry app that ships to consumers will almost always need Google OAuth, and the SDK churn (especially the Credential Manager migration) makes a centrally-maintained binding much more durable than per-app forks.
Feature request: official
@perryts/google-authpackage for Google Sign InSister request to the Apple Sign In one. Most apps that ship SIWA also need Google OAuth — and unlike Apple's, Google's binding has to handle three SDK flavors (GoogleSignIn iOS SDK, Credential Manager on Android, GoogleAuthLibrary on the desktop), which makes a one-off local fork painful to maintain.
Surface we'd expect
Configuration that should flow from
perry.toml:Notes:
GoogleSignInSDK via SwiftPM (already pinning is fine).androidx.credentialsCredential Manager (thecom.google.android.gmsSDK is being deprecated end-of-2026).Why this matters
Same reasoning as the Apple Sign In request — a Perry app that ships to consumers will almost always need Google OAuth, and the SDK churn (especially the Credential Manager migration) makes a centrally-maintained binding much more durable than per-app forks.