@baxcloud/parse-server-baxverify
v1.0.4
Published
Parse Server custom auth adapter for BaxVerify phone login (SMS OTP)
Maintainers
Readme
@baxcloud/parse-server-baxverify
Parse Server custom auth adapter for BaxVerify phone login. Mobile clients verify SMS OTP with BaxVerify, then call ParseUser.logInWith('baxverify', { id, token }); Parse Server validates the proof JWT server-side.
For BaxVerify webhook verification (and other BaxCloud product webhooks), use @baxcloud/baxcloud-server-sdk on your server alongside this adapter.
Product-specific SDKs:
- @baxcloud/baxstream — docs — video conversion + AI
- @baxcloud/baxmail — docs — transactional email
- @baxcloud/baxverify — docs — SMS OTP verification
- @baxcloud/baxlinks — docs — deep linking & attribution
Install
npm install @baxcloud/parse-server-baxverify parse-serverRequires Node.js 18+. Your BaxCloud API key must stay on the Parse Server — never in mobile apps.
Quick start
1. Environment
BAXCLOUD_PROJECT_ID=your-project-id
BAXCLOUD_API_KEY=your-api-key2. Parse Server config
const { ParseServer } = require('parse-server');
new ParseServer({
databaseURI: process.env.DATABASE_URI,
appId: process.env.PARSE_APP_ID,
masterKey: process.env.PARSE_MASTER_KEY,
serverURL: process.env.PARSE_SERVER_URL,
auth: {
baxverify: {
module: '@baxcloud/parse-server-baxverify',
},
},
});3. Flutter client
After BaxVerify verifyOtp, pass result.externalAuth to Parse:
await ParseUser.logInWith('baxverify', result.externalAuth!);See Flutter BaxVerify SDK and BaxCloud docs.
Configuration options
You can pass credentials in Parse auth config instead of env vars:
auth: {
baxverify: {
module: '@baxcloud/parse-server-baxverify',
projectId: process.env.BAXCLOUD_PROJECT_ID,
apiKey: process.env.BAXCLOUD_API_KEY,
consume: true, // default — single-use token on login
},
},| Option | Description |
|--------|-------------|
| projectId | BaxCloud project ID (or BAXCLOUD_PROJECT_ID) |
| apiKey | BaxCloud API key (or BAXCLOUD_API_KEY) |
| consume | Consume JWT on login (default true) |
Custom factory
For a local auth file or shared defaults:
const { createBaxVerifyParseAuth } = require('@baxcloud/parse-server-baxverify/create');
module.exports = createBaxVerifyParseAuth({
projectId: process.env.BAXCLOUD_PROJECT_ID,
apiKey: process.env.BAXCLOUD_API_KEY,
});How it works
- Client sends OTP via BaxVerify (
@baxcloud/baxverifyon your API, orbaxcloud_verify_sdkon Flutter). - Client verifies OTP and receives a short-lived
accessToken(JWT proof). - Client calls
ParseUser.logInWith('baxverify', { id: phone, token: accessToken }). - This adapter calls BaxVerify
validateVerificationToken, checks phone matchesauthData.id, and stores{ phone }on the Parse User.
Error codes
Token validation calls the BaxVerify API. Failures return stable codes such as BAXVERIFY_TOKEN_INVALID, BAXVERIFY_TOKEN_CONSUMED, or BAXVERIFY_FEATURE_DISABLED, often with details.helpUrl pointing to the dashboard fix.
Related SDKs
- @baxcloud/baxcloud-server-sdk — docs — webhooks, rooms, streaming, PK Battle
- @baxcloud/baxstream — docs — video conversion + AI
- @baxcloud/baxmail — docs — transactional email
- @baxcloud/baxverify — docs — BaxVerify Node.js SDK
- @baxcloud/baxlinks — docs — deep linking & attribution
- BaxVerify Flutter SDK — docs — mobile clients
License
MIT
Support
- Help: https://baxcloud.tech/dashboard/help
- Contact: https://baxcloud.tech/contact
- Documentation: https://baxcloud.tech/docs/baxverify/sdk/parse-server
- Email: [email protected]
