Choose how members sign in to the Genuin SDK
Compare Genuin's built-in sign-in, single sign-on through your identity provider, and Auto Login with a token from your backend, and pick the one that fits your app.
Anyone can watch the videos in an embed, a placement, or a full-screen feed without an account. Posting, commenting, reacting, following, and joining need a Genuin member account. The SDKs offer three ways to give a member that account. The three combine: the built-in sheet is always there, SSO adds a button to it, and Auto Login skips it.
- Genuin sign-in: the SDK's own sign-in sheet. The member enters an email address or phone number and a one-time code, or continues with Google or Apple. Nothing to build.
- Single sign-on (SSO): a Continue with <your brand> button on that sheet, backed by your OAuth 2.0 or OpenID Connect provider. Configured once in Brand Control Center.
- Auto Login: your app hands the SDK a token from your backend. Genuin verifies it and signs the member in without a screen.
Note: Earlier versions of this page called the built-in sheet "Bypass Login". In Genuin's backend, "bypass" names a variant of Auto Login in which Genuin trusts the identity your app sends. This page uses "Genuin sign-in" for the sheet and reserves "bypass" for that Auto Login mode.
Compare the options
| Genuin sign-in | Single sign-on | Auto Login | |
|---|---|---|---|
| Who holds the account | Genuin. The member account is keyed by the email address or phone number the member verifies with a one-time code, or by their Google or Apple account. | Your identity provider. Genuin creates the member account on the first sign-in and links it to your provider's user id. | Your backend. Genuin creates the member account from the profile your verification endpoint returns, keyed by its phone number or email. |
| What the brand configures | Nothing; it's on for every brand. Optionally, Settings > Guided Onboarding Controls > Enable Login/signup shows the sheet to guests after a number of swipes. | Settings > Setup Single Sign On (SSO): client ID, client secret, your discovery URL or three endpoints, scopes, and the user info mapping. | Nothing in Brand Control Center. The Genuin team enables Auto Login on your brand and stores your verification URL and field mapping. |
| What the app passes at init | The API key and an embed or placement ID. | The same as Genuin sign-in; the button comes from your brand configuration. | A token: setSSOToken() or GenuinSDK.ssoLogin() on Android, the ssoToken: argument or GenuinSDK.shared.ssoLogin() on iOS, token in window.genuin.init() on the web, plus optional profile parameters. |
| When the member sees a login screen | When they tap an action that needs an account, and after the configured number of swipes if the popup is on. | The same moments. The member taps Continue with <your brand> and signs in at your provider once per device; later visits are passed through by the provider's session. | Never while the token verifies. If verification fails, the member stays a guest and the sheet opens on the next gated action, unless your app handles sign-in itself. |
| What works without sign-in | Watching feeds, embeds, placements, and the full-screen view, and search. | Same. | Same. |
What stays the same: every option ends in the same Genuin member account, profile, and analytics events. The session is the same too: an access token valid for 14 days and a refresh token valid for 100 days in production. A member who signs in with Auto Login in your app and with a one-time code on your community site, using the same email, is one member.
Genuin sign-in
The sheet is part of the Core module on Android and iOS and of the Web SDK. It appears as a half-height sheet on iPhone, full screen on iPad, as a bottom sheet on Android, and as a modal on the web.
The member chooses email or phone and receives a one-time code; Google and Apple buttons sit under the form, with Continue with <your brand> when SSO is configured. On success the SDK stores the session and reloads the view that asked for it, so a comment the member started is posted after sign-in.
On the web, Standard Wall embeds never show the modal. They send the member to your sign-in page or to your community site instead, as described under Hand sign-in to your app.
Genuin can switch off creation entry points for your brand with the post_enabled and camera_enabled flags. That hides the create button but leaves reactions and comments, and their sign-in prompt, in place. Ask the Genuin team if you want a view-only integration.
Single sign-on
SSO suits brands whose users already have accounts with an OAuth 2.0 or OpenID Connect provider such as Auth0, Okta, Cognito, or Keycloak. You register Genuin's callback URLs with your provider and fill in one form in Brand Control Center. The SDKs need no code change: the button appears from the brand configuration they load with your API key.
On Android and iOS the SDK asks Genuin for your provider's authorization URL and opens it in a web view or an authentication session. It intercepts the callback and posts the code to Genuin. On the web the embed redirects to the provider and back. Genuin exchanges the code at your token endpoint, reads your user info endpoint, applies the mapping, and finds or creates the member.
Setup, field by field, is in Set up single sign-on with your identity provider.
If your app already holds a provider access token, you can skip the button: pass that access token as the Auto Login token. Genuin calls your provider's user info endpoint with it and applies the same mapping. See How Auto Login works.
Auto Login
Auto Login is for apps with their own session, with or without an OAuth provider. Your backend issues a token, your app passes it to the SDK, and Genuin calls your verification URL to turn it into a profile. The member sees nothing.
Pass the token when your app knows the user. On Android, GenuinSDK.ssoLogin(context, ssoToken, params) { success -> } signs the member in for every view; setSSOToken() on a single view does the same for that view. On iOS, GenuinSDK.shared.ssoLogin(ssoToken:params:completion:) or the ssoToken: argument of initializeEmbed, initializePlacement, and initializeEmbedFeed. On the web:
<div id="gen-sdk" class="gen-sdk-class" style="width: 100%; height: 600px"></div>
<script src="https://media.begenuin.com/sdk/2.0.6/gen_sdk.min.js"></script>
<script>
window.genuin.init({
embed_id: '{{EMBED_ID}}',
api_key: '{{API_KEY}}',
token: '{{AUTO_LOGIN_TOKEN}}', // from your backend
params: { name: 'John Doe', email: 'john.doe@example.com' }, // optional
})
</script>params pre-fills the member's name, nickname, email, phone, and profile image on their first sign-in. The SDK remembers the token: passing the same value again costs no request, and passing a different value signs the previous member out first. Sign the member out of Genuin when they sign out of your app with ssoLogout() on Android and iOS or window.genuin.logout() on the web.
The token contract, the verification call, the session lifetimes, and the error codes are in How Auto Login works.
Hand sign-in to your app
When members can browse before they sign in to your app, you don't have a token at init. Register a callback instead, and the SDK asks your app to sign the member in at the moment an account is needed:
- Android:
GenuinSDK.registerInterface(object : GenuinInterface { override fun onLogin(context: Activity) { … } }). Run your sign-in flow, then callGenuinSDK.ssoLogin()with the token. - iOS: set
GenuinSDK.shared.delegateand implementpresentLoginViewController(baseViewController:). Present your sign-in, then callGenuinSDK.shared.ssoLogin(). - Web: define
window.genuinAuth = (data) => { … }; it receives{ path, action, returnQueryParams }for the video and action the member was on. Or passauth_info: { signInUrl, signUpUrl }ininit(), and the embed opens your page with those parameters appended. After sign-in, callwindow.genuin.update({ token, container_id })or reload the page withtokenset.
With a callback registered, the Genuin sheet never appears. Without one, the sheet is the fallback on all three platforms.
Which to pick
| Your app | Pick |
|---|---|
| Has no login of its own | Genuin sign-in. Nothing to build; members get accounts from Genuin. |
| Signs users in through an OAuth 2.0 or OpenID Connect provider | SSO. One form in Brand Control Center, no app code. Pass the provider's access token as an Auto Login token if you want no button at all. |
| Has its own session and no OAuth provider | Auto Login with a verification URL. |
| Lets users browse first and sign in only to interact | Auto Login triggered from the sign-in callback, so your login appears exactly when Genuin needs an account. |
| Wants members on your website and in your app to be one account | Any option, as long as the same email or phone number identifies the member in both places. |
| Wants no accounts at all | Genuin sign-in with creation switched off by the Genuin team. Reactions and comments still prompt for sign-in. |
Limitations
- One SSO provider per brand: The Brand Control Center form holds a single configuration.
- Auto Login isn't self-serve: The verification URL and mapping are set by the Genuin team, with no Brand Control Center screen.
- One member per device: A new Auto Login token signs the previous member out of the SDK before it signs the next one in.
- The sheet can't be hidden: Creation entry points can be switched off per brand, but an interaction that needs an account always prompts for sign-in.
- Standard Wall never shows the sheet on the web: It redirects to your callback, your
signInUrl, or your community site. - No single logout: Signing out of Genuin doesn't sign the member out of your provider or your app, and the reverse is your app's job.

