0

Je veux désactiver le mot de passe Laravel bcrypt lorsque je tente de vous identifier comme celui-ciComment désactiver Laravel 5.2 mot de passe bcrypt

Auth::guard('client')->attempt(
'id' => $request['id'], 
'password' => $request['password']) 

Mais il semble être plus dificile que je pensais, je sais que je ne devrais pas Pour ce faire, mais j'ai besoin temporairement de travailler comme ça, mais laravel me force à utiliser des mots de passe cryptés. Je dois pouvoir utiliser des mots de passe simples dans ma base de données. Je recherche sur internet mais je ne peux pas trouver une solution.

+0

Oh non: Encore une faille de sécurité dans le futur. – zaph

+0

N'utilisez jamais de mot de passe en texte brut dans la base de données. –

Répondre

0

Vous pouvez étendre Illuminate \ Auth \ EloquentUserProvider, à savoir:

<?php 

namespace App\Services\Auth; 

use Illuminate\Auth\EloquentUserProvider as BaseUserProvider; 
use Illuminate\Contracts\Auth\Authenticatable as UserContract; 

class UserProvider extends BaseUserProvider { 
    /** 
    * Create a new database user provider. 
    * 
    * @param string $model 
    * 
    * @return void 
    */ 
    public function __construct($model) 
    { 
     $this->model = $model; 
    } 

    /** 
    * Validate a user against the given credentials. 
    * 
    * @param \Illuminate\Contracts\Auth\Authenticatable $user 
    * @param array          $credentials 
    * 
    * @return bool 
    */ 
    public function validateCredentials(UserContract $user, array $credentials) 
    { 
     $plain = $credentials['password']; 

     // $matches = some method of matching $plain with $user->getAuthPassword(); 

     return $matches; 
    } 
} 

Alors inscrivez-vous cela dans le IoC dans un fournisseur de services comme ceci:

<?php // ... 

/** 
* Register the service provider. 
* 
* @return void 
*/ 
public function register() 
{ 
    // ... 

    $this->app['auth']->extend(
     'legacy', 
     function() { 
      return new \Illuminate\Auth\Guard(
       new \App\Services\Auth\UserProvider(
        $this->app['config']['auth.model'] 
       ), 
       $this->app['session.store'] 
      ); 
     } 
    ); 

    // ... 
} 

Ensuite, configurez votre pilote actuel à l'héritage dans config/auth.php.

PS: Vous pouvez inclure les classes dans le fournisseur,

+0

Que voulez-vous dire par étendre? Quelle classe ?, qu'est-ce que loC? – Saucyloco