jeudi 12 avril 2018

laravel jwt for different user tables login

Working on an api with jwt for different tables,my client login gives me invalid credentials error but my user login working well.this is my apilogincontroller

namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Validator;
use JWTFactory;
use JWTAuth;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Config;
use App\Client;



class APILoginController extends Controller
{

    public function __construct(){
            $this->user = new User;
            $this->client=new Client;
    }


    public function login(Request $request)
    {
            \Config::set('auth.providers.users.model', \App\User::class);
              $validator = Validator::make($request->all(), [
                'email' => 'required|string|email|max:255',
                'password'=> 'required'
        ]);
              if ($validator->fails()) {
                   return response()->json($validator->errors());
        }
             $credentials = $request->only('email', 'password');
             try {
                  if (! $token = JWTAuth::attempt($credentials)) {
                           return response()->json(['error' => 
     'invalid_credentials'], 401);
            }
             } catch (JWTException $e) {
                     return response()->json(['error' => 'could_not_create_token'], 500);
            }
            return response()->json(compact('token'));
        }






    public function signin(Request $request){


             $validator = Validator::make($request->all(), [
                'email' => 'required|string|email|max:255',
                'password'=> 'required'
            ]);
            if ($validator->fails()) {
                return response()->json($validator->errors());
            }
            $credentials = $request->only('email', 'password');
             try {
                 Config::set('jwt.user', 'App\Client'); 
                  Config::set('auth.providers.users.model',\ 
     App\Client::class);
                if (! $token = JWTAuth::attempt($credentials)) {
                       return response()->json(['error' => 
     'invalid_credentials'], 401);
                }
            } catch (JWTException $e) {
                   return response()->json(['error' => 'could_not_create_token'], 500);
            }
                 return response()->json(compact('token'));

           }

       }

    i have looked for searches including stackoverflow but they all used similar code with Config::set('jwt.user', 'App\Client'); 
                  Config::set('auth.providers.users.model',\ 
     App\Client::class);

and it worked but when i try testing login for my client on postman it gives invalid credentials error but for my user login it works perfectly.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire