lundi 12 novembre 2018

Laravel 5.3 oauth token error in rest api

when i am trying to register user from mobile that data is inserting in users table but not in oauth_clients it should upload same time

and when i try to login it show oauth/token 401 error

here is my routes

Route::post('/register' , 'ProviderAuth\TokenController@register');

Route::post('/oauth/token' , 'ProviderAuth\TokenController@authenticate');

this is my register function which is in TokenConrtoller

public function register(Request $request)
{
    $this->validate($request, [
            'device_id' => 'required',
            'device_type' => 'required|in:android,ios',
            'device_token' => 'required',
            'first_name' => 'required|max:255',
            'last_name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:providers',
            'mobile' => 'required',
            'password' => 'required|min:6|confirmed',
        ]);

    try{

        $Provider = $request->all();
        $Provider['password'] = bcrypt($request->password);
        $Provider['status'] = 'approved';

        $Provider = Provider::create($Provider);

        ProviderDevice::create([
                'provider_id' => $Provider->id,
                'udid' => $request->device_id,
                'token' => $request->device_token,
                'type' => $request->device_type,
            ]);

        return $Provider;


    } catch (QueryException $e) {
        if ($request->ajax() || $request->wantsJson()) {
            return response()->json(['error' => 'Something went wrong, Please try again later!'], 500);
        }
        return abort(500);
    }

}

and this is my authenticate method

public function authenticate(Request $request)
{
    $this->validate($request, [
            'device_id' => 'required',
            'device_type' => 'required|in:android,ios',
            'device_token' => 'required',
            'email' => 'required|email',
            'password' => 'required|min:6',
        ]);

    Config::set('auth.providers.users.model', 'App\Provider');

    $credentials = $request->only('email', 'password');

    try {
        if (! $token = JWTAuth::attempt($credentials)) {
            return response()->json(['error' => 'The email address or password you entered is incorrect.'], 401);
        }
    } catch (JWTException $e) {
        return response()->json(['error' => 'Something went wrong, Please try again later!'], 500);
    }

    $User = Provider::with('service', 'device')->find(Auth::user()->id);

    $User->access_token = $token;
    $User->currency = Setting::get('currency', '$');

    if($User->device) {
        if($User->device->token != $request->token) {
            $User->device->update([
                    'udid' => $request->device_id,
                    'token' => $request->device_token,
                    'type' => $request->device_type,
                ]);
        }
    } else {
        ProviderDevice::create([
                'provider_id' => $User->id,
                'udid' => $request->device_id,
                'token' => $request->device_token,
                'type' => $request->device_type,
            ]);
    }

    return response()->json($User);
}



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire