TOZAUTH

Seamless & secure two-factor authentication with push notifications – no more typing 6 digit codes!

Fast & Secure Authentication

Secure authentication that easily integrates into any system

How TOZAUTH Works

TozAuth handles all push notifications, handshakes, and automatic login for you. Our SDK makes integration a breeze and your users will love it!

Features You Need

TozAuth can be used as the sole authentication service for your application, or extend your existing authentication with 2FA.  Integration takes minutes.

Easy Integration

Tozny has TozAuth apps in the iOS and Android app stores that can handle push notifications for you.  Your users never need to enter another 6 digit code again!

  • JS
  • RUBY
  • PYTHON
  • GO
  • SWIFT
  • 
    const e3db = require('e3db')
    
    let client = new e3db.Client(/* config */)
    
    async function main() {
      let data = {
        'first_name': 'Jon',
        'last_name': 'Snow',
        'phone': '555-555-1212',
      }
      let metadata = {
        'house' : 'Stark'
      }
      let record = await client.write('contact', data, metadata)
    
      console.log('Wrote record ' + record.meta.recordId)
    }
    main()
  • 
    record = client.write('contact', {
      :first_name => 'Jon',
      :last_name => 'Snow',
      :phone => '555-555-1212'
    })
    printf("Wrote record %s\n", record.meta.record_id)
  • 
    import e3db
    
    client = e3db.Client(
    # config
    )
    
    record_type = 'contact'
    data = {
      'first_name': 'Jon',
      'last_name': 'Snow',
      'phone': '555-555-1212'
      }
    
    metadata = {
      'house' : 'Stark'
    }
    
    record = client.write(record_type, data, metadata)
    
    print 'Wrote record {0}'.format(record.meta.record_id)
  • 
    // Create data for a record
    var recordData map[string]string
    recordType := "contact"
    recordData["first_name"] = "Jon"
    recordData["last_name"]  = "Snow"
    recordData["phone"]      = "555-555-1212"
    
    // Create optional metadata for the record
    //(metadata can be used for searching)
    var metadata map[string]string
    matadata["realm"] = "The North"
    metadata["pet"]   = "Ghost"
    
    // Encrypt and save the record
    recordID, err := client.Write(
      context.Background(),
      recordType, 
      recordData, 
      metadata
    )
    if err != nil {
        //Error handling omitted
    }
    fmt.Println("Wrote record: " + recordID)
  • 
    // Wrap message in RecordData type to designate
    // it as sensitive information for encryption
    let recordData = RecordData(cleartext: ["SSN": "123-45-6789"])
    
    // Can optionally include arbitrary metadata as 'plain'
    // where neither keys nor values are encrypted
    e3db.write(type: "UserInfo", data: recordData, plain: ["Sent from": "my iPhone"]) { result in
        switch result {
    
            // The operation was successful, here's the record
            case .success(let record):
    
                // 'record.meta' holds metadata associated
                // with the record, such as type.
                print("Wrote record! \(record.meta.recordId)")
    
            case .failure(let error):
            print("An error occurred attempting to write the data: \(error)")
            }
        }
    }
made for developers, by developers

The Features You Want

  • Instant Push Authentication
  • iOS and Android Support
  • Robust API
  • Open and Closed Enrollment Support
  • Backup OTP Authentication
  • Easy JS Integration
  • Robust SDKs Available