मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

बायोमेट्रिक्स (फ़िंगरप्रिंट / Face ID) से प्रमाणीकरण कैसे करें

उद्देश्य। किसी संवेदनशील क्रिया को बायोमेट्रिक प्रमाणीकरण (फ़िंगरप्रिंट, Face ID/Touch ID, या डेस्कटॉप पर Windows Hello) माँगकर सुरक्षित करना। परिणाम callback के माध्यम से, अतुल्यकालिक रूप से आता है।

उपयोग की गई APIs

  • boolean Biometry.isAvailable() — true यदि डिवाइस में कम से कम एक बायोमेट्रिक विधि उपलब्ध है। प्रमाणीकरण से हमेशा पहले कॉल करें।
  • void Biometry.authenticate(String reason, String cancel, boolean onlyBiometric, Biometry.Callback callback) — मूल बायोमेट्रिक्स UI दिखाता है।
    • reason — यह बताने वाला टेक्स्ट कि प्रमाणीकरण क्यों आवश्यक है।
    • cancel — रद्द करने वाले बटन का लेबल।
    • onlyBiometric — true = केवल बायोमेट्रिक्स (PIN/पासवर्ड के लिए कोई fallback नहीं); false = PIN/पासवर्ड की अनुमति देता है।
  • Biometry.Callback.onResult(AuthResult result, String message) — अतुल्यकालिक परिणाम।
  • Biometry.AuthResult (enum) — SUCCESS, FAILURE, CANCELLED, ERROR।

नोट। callback paint thread के बाहर आता है — किसी भी UI अपडेट को Component.onUI(...) में लपेटें। समर्थन: Android (BiometricPrompt), iOS (Face ID/Touch ID), सीमित डेस्कटॉप (Windows Hello)। बायोमेट्रिक डेटा कभी डिवाइस से बाहर नहीं जाता — केवल परिणाम लौटाया जाता है।

पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)

package com.exemplo;

import dev.crossfly.ui.*;                   // Window, Component, Button, Label
import dev.crossfly.ui.layout.*;            // VerticalLayout
import dev.crossfly.device.*;               // Biometry, Biometry.AuthResult

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      Label resultado = new Label("");
      add(LAY_AUTO, resultado);

      Button acao = new Button("Autenticar");
      acao.onAction(c ->
      {
         if (Biometry.isAvailable())
         {
            Biometry.authenticate(
               "Autentique-se para acessar sua conta",  // reason
               "Cancelar",                               // cancel
               false,                                    // onlyBiometric=false → PIN/पासवर्ड की अनुमति देता है
               (result, message) -> Component.onUI(() ->   // callback paint thread के बाहर
               {
                  switch (result)
                  {
                     case SUCCESS:   resultado.setText("Acesso liberado");        break;
                     case FAILURE:   resultado.setText("Falhou: " + message);     break;
                     case CANCELLED: resultado.setText("Cancelado");              break;
                     case ERROR:     resultado.setText("Erro: " + message);       break;
                  }
               }));
         }
         else
         {
            resultado.setText("Sem biometria disponível");   // एप्लिकेशन के पासवर्ड/PIN पर फ़ॉलबैक करें
         }
      });
      add(LAY_AUTO, acao);
   }
}

नीचे का अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए MainWindow ढाँचे में रखें।

न्यूनतम अंश

// स्रोत में सत्यापित: Biometry.java (isAvailable, authenticate, Callback.onResult, AuthResult)
import dev.crossfly.device.*;              // Biometry, Biometry.AuthResult
import dev.crossfly.ui.*;                  // Component (onUI)

if (Biometry.isAvailable()) {
   Biometry.authenticate(
      "Autentique-se para acessar sua conta",  // reason
      "Cancelar",                               // cancel
      false,                                    // onlyBiometric=false → PIN/पासवर्ड की अनुमति देता है
      (result, message) -> Component.onUI(() -> {   // callback paint thread के बाहर
         switch (result) {
            case SUCCESS:   liberarAcesso();                     break;
            case FAILURE:   mostrarErro("Falhou: " + message);   break;
            case CANCELLED: /* उपयोगकर्ता ने रद्द किया */               break;
            case ERROR:     mostrarErro("Erro: " + message);     break;
         }
      }));
} else {
   // बायोमेट्रिक्स नहीं: एप्लिकेशन के पासवर्ड/PIN पर फ़ॉलबैक करें
}

और गहराई में जाएँ

क्या यह पृष्ठ उपयोगी था?