Socket
Socket
Sign inDemoInstall

@startupjs/2fa-totp-authentication

Package Overview
Dependencies
Maintainers
0
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@startupjs/2fa-totp-authentication

Two factor authentication module for Google Authenticator


Version published
Maintainers
0
Created
Source

startupjs 2fa-totp-authentication

Сomponent of two-factor authentication

Installation

yarn add @startupjs/2fa-totp-authentication

Connecting to the startupjs

server

In server/index.js add next strings:

import { init2fa } from '@startupjs/2fa-totp-authentication/server'
import app from '../app.json'

In startupjsServer function add:

init2fa(ee, { appName: app.name })

client

import { createSecret, getSecret, QRSecret, CheckToken } from '@startupjs/2fa-totp-authentication'

export default function MyComponent() {
  const [secret, setSecret] = useState({})

  async function onCreateSecret () {
    const secret = await createSecret()
    setSecret(secret)
  }

  async function onGetSecret () {
    try {
      const secret = await getSecret()
      secret && setSecret(secret)
    } catch (err) {
      console.log('err: ', err)
    }
  }

  return (
    <View style={styles.root}>
      <View style={styles.row}>
        <Button
          style={styles.button}
          title="Create secret"
          onPress={onCreateSecret}
        />
        <Button
          style={styles.button}
          title="Get created secret"
          onPress={onGetSecret}
        />
      </View>
      {secret.QRDataURL && <QRSecret style={styles.qr} />}
      {secret.QRDataURL && <CheckToken onSuccess={() => alert('Right code')} onDismiss={() => alert('Wrong code')} />}
    </View>
  )
}

const styles = StyleSheet.create({
  root: {
    flex: 1,
    alignItems: 'center'
  },
  row: {
    minWidth: 320,
    flexDirection: 'row',
    justifyContent: 'space-around'
  },
  qr: {
    width: 100,
    height: 100
  }
})

functions

  • createSecret - returns a Promise which creates a request to create a Secret (if secret exists it will be replaced by new secret) and returns the result:

    • { base32, QRDataURL } here:
      • base32 - your Secret code
      • QRDataURL - QR code that you can use like image
  • checkToken(token) - return true if token is valid and false otherwise

  • getSecret - return already created secret (if secret does not exist there will throw error) in format like in createSecret.

components

QRSecret

You can use this component for show QR code of existing secret. If secret does not exist there will show nothing.

CheckToken

Simple token validation. There are props:

  • style - styles of root component
  • label - input label
  • onSuccess - valid token callback
  • onDismiss - invalid token callback

FAQs

Package last updated on 27 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc