• File: AuthPIN.php
  • Full Path: /var/www/imaliapi/app/Classes/AuthPIN.php
  • Date Modified: 04/15/2024 8:53 PM
  • File size: 1.33 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Classes;

use App\User;
use Hash;

class AuthPIN {

    private static function getUser($userID){
        return User::findOrFail($userID);
    }

    private static function pinAttempts($userID){
        $user = AuthPIN::getUser($userID);
        $user->pin_attempts = $user->pin_attempts + 1;
        $user->update();
    }

    private static function getPinAttempts($userID){
        $user = AuthPIN::getUser($userID);
        return $user->pin_attempts;
    }

    public static function validatePIN($userID, $pinFornecido, $pinUsuario){

        if (Hash::check($pinFornecido, $pinUsuario)) {
              $user = AuthPIN::getUser($userID);
              $user->pin_attempts = 0;
              $user->update();
            return true;
        }

        AuthPIN::pinAttempts($userID);

        return false;
    }

    private function destroyUserAccessToken($accessToken){
        $token_parts = explode('.',$accessToken);
        $token_header = $token_parts[1];
        $token_header_json = base64_decode($token_header);
        $token_header_array = json_decode($token_header_json, true);
        $token_id = $token_header_array['jti'];


        DB::table('oauth_refresh_tokens')->where('access_token_id', $token_id)->update(['revoked' => true]);

        $token = Token::find($token_id);

        $token->revoke();
    }
}