0
votes

Hash :: chèque est toujours faux ou null

Pourquoi quand vous connectez-vous le hachage :: chèque toujours est faux ou null?

Cela fait partie de mon contrôleur de registre. Le mot de passe que j'ai enregistré dans une seule table nommée «mot de passe» que je hachais avec la méthode ci-dessous p> xxx pré>

ci-dessous est mon contrôleur de connexion avec la méthode Hash :: chèque où je vérifie L'utilisateur actuel, son mot de passe haché dans mon db nommé Huse_USers, je reçois le mot de passe de saisie de chaîne par le formulaire de connexion et j'essaie de le faire correspondre avec hachage :: chèque. Dans ce cas, le passage doit être 123123. p>

problème est-il toujours renvoyé "au revoir". p>

Ce que je fais mal ici? p>

<?php

namespace App\Http\Controllers\userController;


use App\Model\Hause_users;
use App\User;
use Illuminate\Http\Request;

use Illuminate\Support\Facades\Hash;

use Illuminate\Routing\Controller;


use Illuminate\Support\Facades\Response;


class loginController extends Controller
{
    /**
     * Handle an authentication attempt.
     *
     * @param  \Illuminate\Http\Request $request
     *
     * @return Response
     */
    public function authLogin(Request $request)
    {
       $data = Hause_users::where('username', '=', request('username'))->first();
        $password = ($data['password']);


             // dd($request->password);
        //dd($data['password']);

        $check = Hash::check($request->password, $data['password']);
           if($check){
               return 'welcome';
        }else{
            return 'Bye';
        }

        //echo($pass_in);

        }

}


6 commentaires

Est-ce que cela répond à votre question? quel type de données à utiliser pour le mot de passe hachéded champ et quelle longueur?


Merci mais pas vraiment. J'utilise Hash :: Faites la méthode de la framework de Laravel qui est en fait du règlement dans les coulisses. Je peux juste comprendre pourquoi le hash :: chèque ne correspond pas à l'entrée de l'utilisateur avec le mot de passe déduit de la DB.


Oui, je dis que c'est probablement parce que vous ne stockez pas correctement le hasch dans la base de données.


Sans parler de votre vérification de la chaîne 'Mot de passe' dans votre code fourni ...


@ Miken32 Merci pour votre aide, je le récupère correctement que le DD () est en train de tirer à la fois la chaîne hachée et la saisie de l'utilisateur. J'ai fait un petit code modifier avec certains chèques DD () que j'utilise.


Je ne dis pas que vous ne stockez pas le hasch. Je dis que vous ne le stockez probablement pas complètement. Avez-vous regardé la Dupe? Vous ne semblez pas aborder les problèmes potentiels expliqués par les réponses. Où est ta migration?


3 Réponses :


0
votes

Vous devez transmettre le mot de passe de l'entrée de l'utilisateur à la 1ère argument et transmettre le mot de passe haché à partir de DB sur 2e argument de hachage :: chèque comme ceci: xxx

Voir LARAVEL DOCS pour plus d'informations.


3 commentaires

Non, ça ne marche pas comme ça. Outre votre :: Où la clause est fausse. Ai-je besoin de hash ou obtenez quelque chose de la blade.template


@Nikolaysabev ce que tu veux dire ça ne marche pas? Essayez juste.


je l'ai fait mais toujours la même vieille état de résultat saute toujours à False



0
votes

La méthode de contrôle est de comparer entre le mot de passe hachéd et le mot de passe saisi que vous devez l'utiliser de cette façon

$check = Hash::check($request->password,auth()->user()->password);
if($check)
{
// your condition
}
else{
// return what ever you want
}


1 commentaires

Non ce n'est pas utile, n'a aucune différence là où j'utilise la condition si



0
votes

J'ai trouvé le problème et c'était dans mon modèle de lame. J'ai eu une erreur d'erreur check {{ancien "mot de passe"}} qui cousait la collision de chaîne incorrecte avec l'entrée. Quand j'ai supprimé cette partie valeur = "{{{vieux (" mot de passe ")}} tout a fonctionné lisse.


0 commentaires