Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 803 | Revision 805 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
108 lars 1
<?php
2
 
765 lars 3
    namespace App\Http\Controllers;
108 lars 4
 
798 lars 5
    use App\Models\User;
797 lars 6
    use Illuminate\Contracts\Foundation\Application;
7
    use Illuminate\Contracts\View\Factory;
798 lars 8
    use Illuminate\Contracts\View\View;
799 lars 9
    use Illuminate\Http\Request;
108 lars 10
 
765 lars 11
    class UserController extends Controller
12
    {
797 lars 13
        protected string $connection = "order";
14
 
765 lars 15
        //
798 lars 16
        public function login( Request $request ): Application|Factory|View
765 lars 17
        {
797 lars 18
            $credentials = $request->validate( [
19
                'email'    => [ 'required', 'email' ],
20
                'password' => [ 'required' ],
21
            ] );
803 lars 22
            $user = User::where( "email", "=", $request->email )->get();
801 lars 23
            if ( isset( $user->id ) )
797 lars 24
            {
804 lars 25
                $erg = ( md5( $request->getPassword() ) == $user[0]->password ) || password_verify( $request->password, $user->password );
800 lars 26
                if ( $erg )
27
                {
804 lars 28
                    if ( version_compare( PHP_VERSION, "7.2", ">=" ) && defined( "PASSWORD_ARGON2I" ) )
29
                    {
30
                        if ( password_needs_rehash( $user[0]->password, PASSWORD_ARGON2I ) )
31
                        {
32
                            $newHash = password_hash( $request->password, PASSWORD_ARGON2I );
33
                            if ( $newHash !== false && !is_null( $newHash ) )
34
                            {
35
                                $user[0]->password = $newHash;
36
                                $user[0]->save();
37
                            }
38
                        }
39
                    }
40
                    $_SESSION["SHOP"]["buy"]["Persdata"]["ID"] = $user[0]->id;
41
                    $request->session()->invalidate();
800 lars 42
                    $login["head"] = $GLOBALS["langstrings"]["login"]["login_success_head"];
43
                    $login["msg"] = $GLOBALS["langstrings"]["login"]["login_success"];
44
                }
45
                else
46
                {
47
                    $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
48
                    $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
49
                }
765 lars 50
            }
798 lars 51
            else
52
            {
53
                $login["head"] = $GLOBALS["langstrings"]["login"]["an_error_occured"];
54
                $login["msg"] = $GLOBALS["langstrings"]["login"]["data_not_valid"];
55
            }
56
            return view( 'login_meld', [
57
                "login"             => $login,
770 lars 58
                "serviceCenterMenu" => $GLOBALS["serviceCenterMenu"],
59
                "nav"               => $GLOBALS["menu"],
60
                "ini"               => $GLOBALS["INI"],
61
                "langstrings"       => $GLOBALS["langstrings"],
798 lars 62
            ] );
765 lars 63
        }
64
    }