Flutter Pass Code Page or Pin Code Page Package

This package gives you beautiful pass code page for using both android and ios. <br/><br/>

flutter platform pub package License: MIT



It is really easy to use! You should ensure that you add the flutter_lock_screen as a dependency in your flutter project.

  flutter_lock_screen: '^1.0.4'

Than you can use it with below example.

import 'package:flutter/material.dart';
import 'package:local_auth/local_auth.dart';
import 'package:testapp/empty_page.dart';
import 'package:flutter/services.dart';

class PassCodeScreen extends StatefulWidget {
  PassCodeScreen({Key key, this.title}) : super(key: key);

  final String title;

  _PassCodeScreenState createState() => new _PassCodeScreenState();

class _PassCodeScreenState extends State<PassCodeScreen> {
  bool isFingerprint;

  Future<Null> biometrics() async {
    final LocalAuthentication auth = new LocalAuthentication();
    bool authenticated = false;

    try {
      authenticated = await auth.authenticateWithBiometrics(
          localizedReason: 'Scan your fingerprint to authenticate',
          useErrorDialogs: true,
          stickyAuth: false);
    } on PlatformException catch (e) {
    if (!mounted) return;
    if (authenticated) {
      setState(() {
        isFingerprint = true;

  Widget build(BuildContext context) {
    var myPass = [1, 2, 3, 4];
    return LockScreen(
        title: "This is Screet ",
        passLength: myPass.length,
        bgImage: "images/pass_code_bg.jpg",
        fingerPrintImage: "images/fingerprint.png",
        showFingerPass: true,
        fingerFunction: biometrics,
        fingerVerify: isFingerprint,
        borderColor: Colors.white,
        showWrongPassDialog: true,
        wrongPassContent: "Wrong pass please try again.",
        wrongPassTitle: "Opps!",
        wrongPassCancelButtonText: "Cancel",
        passCodeVerify: (passcode) async {
          for (int i = 0; i < myPass.length; i++) {
            if (passcode[i] != myPass[i]) {
              return false;

          return true;
        onSuccess: () {
              new MaterialPageRoute(builder: (BuildContext context) {
            return EmptyPage();


Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.