opensora-uaa-client
v1.0.1
Published
Universal Authentication & Authorization SDK for JavaScript/TypeScript
Maintainers
Readme
@opensora/uaa-client
Universal Authentication & Authorization Client SDK for JavaScript/TypeScript.
Installation
npm install @opensora/uaa-clientUsage
Initialize Client
import { UAAClient } from '@opensora/uaa-client';
const uaa = new UAAClient({
projectId: 'your-project-id', // Get this from UAA dashboard
baseURL: 'https://auth.opensora.store/api/v1' // Optional, default value
});Google Sign In
<!-- Include Google SDK -->
<script src="https://accounts.google.com/gsi/client" async defer></script>
<div id="g_id_onload"
data-client_id="YOUR_GOOGLE_CLIENT_ID"
data-callback="handleGoogleCallback">
</div>async function handleGoogleCallback(response) {
try {
const result = await uaa.loginWithGoogle(response.credential);
// Store tokens
localStorage.setItem('access_token', result.access_token);
localStorage.setItem('refresh_token', result.refresh_token);
console.log('Logged in user:', result.user);
} catch (error) {
console.error('Login failed:', error);
}
}Apple Sign In
<!-- Include Apple SDK -->
<script src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>// Initialize Apple Sign In
AppleID.auth.init({
clientId: 'YOUR_APPLE_CLIENT_ID',
scope: 'name email',
redirectURI: 'https://yourdomain.com/auth/callback',
usePopup: true
});
// Handle login
async function handleAppleLogin() {
try {
const data = await AppleID.auth.signIn();
const result = await uaa.loginWithApple(
data.authorization.code,
data.authorization.id_token
);
localStorage.setItem('access_token', result.access_token);
console.log('Logged in user:', result.user);
} catch (error) {
console.error('Login failed:', error);
}
}Verify Token
const token = localStorage.getItem('access_token');
const verification = await uaa.verifyToken(token);
if (verification.valid) {
console.log('Token is valid, user:', verification.user);
} else {
console.log('Token is invalid or expired');
}Get Current User
const token = localStorage.getItem('access_token');
const user = await uaa.getCurrentUser(token);
console.log('Current user:', user);Refresh Token
const refreshToken = localStorage.getItem('refresh_token');
const result = await uaa.refreshToken(refreshToken);
// Update stored tokens
localStorage.setItem('access_token', result.access_token);
localStorage.setItem('refresh_token', result.refresh_token);Logout
const token = localStorage.getItem('access_token');
await uaa.logout(token);
// Clear stored tokens
localStorage.removeItem('access_token');
localStorage.removeItem('refresh_token');API Reference
UAAClient
Constructor
new UAAClient(config: UAAConfig)Config Options:
projectId(required): Your project ID from UAAbaseURL(optional): UAA API base URL (default:https://auth.opensora.store/api/v1)
Methods
loginWithGoogle(credential: string): Promise<AuthResponse>
Login with Google OAuth credential.
loginWithApple(code: string, idToken: string): Promise<AuthResponse>
Login with Apple OAuth.
verifyToken(token: string): Promise<VerifyResponse>
Verify if an access token is valid.
getCurrentUser(token: string): Promise<User>
Get current user information.
refreshToken(refreshToken: string): Promise<AuthResponse>
Refresh an expired access token.
logout(token: string): Promise<void>
Logout and revoke tokens.
TypeScript Support
This SDK is written in TypeScript and includes full type definitions.
import { UAAClient, User, AuthResponse } from '@opensora/uaa-client';License
MIT
