Error decode token

Saya mau bertanya , saya sudah membuat REST API menggunakan slim framework , semua berjalan normal , tetapi setelah saya hosting, selalu gagal dalam memanggil routing yg memerlukan jwtmiddleware , selalu memberikan keterangan bahwa token salah , bisa dilihat digambar , mohon bantuannya teman teman

avatar yusranpanca
@yusranpanca

7 Kontribusi 1 Poin

Diperbarui 7 tahun yang lalu

4 Jawaban:

Script buat encode sama decodenya gimana gan? Tampilin di sini juga supaya bisa dilihat.

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

INI BAGIAN ENCODE

 use \Firebase\JWT\JWT;

class UserController extends BaseController

{

	public function login($request, $response)

	{

		$username = $request->getParsedBody()['username'];
		$password = $request->getParsedBody()['password'];

		$user = User::where('username', $username) -> where('password',	 $password)->first();

		if(empty($user)){

			return $response->withJson([
				'succes' =>false ,
				'message'=>'username atau password salah'
				]);
		}

		$token = [
			"iss" =>"prognant",
			"iat" =>time(),
			"exp" =>time() + 60 * 60,
			"data" =>[
				"user_id" =>$user->id
				]

			];

		$jwt = JWT::encode($token, getenv('API_KEY'));

		 	return $response->withJson([
				'succes' =>true ,
				'message'=>'SELAMAT!',
				'jwt' 	 => $jwt

				]);

	}

BAGIAN DECODE

 <?php

namespace App\Middleware;

use \Firebase\JWT\JWT;

class JWTMiddleware
{

	public function __invoke($request, $response, $next)
	{

			$jwt = $request->getHeader('Authorization')[0];

		try{

			$decoded = JWT::decode($jwt, getenv('API_KEY'), array('HS256'));

			return $next($request, $response);

		}catch (\Exception $e){
			return $response->withJson([
				'success' =>false,
				'message' =>'token failed'
				], 401);

		}
	}
}

Terimakasih teman teman

avatar yusranpanca
@yusranpanca

7 Kontribusi 1 Poin

Dipost 7 tahun yang lalu

Jawaban Terpilih

hmm, sepertinya waktu sending response di bagian encoding kurang headernya. saya kurang familiar dengan slim framework, tapi mungkin bisa dicoba tambahin header Authorization

return $response->withHeader('Authorization', $jwt)
		->withJson([
			'succes' => true ,
			'message'=> 'SELAMAT!',
			'jwt' 	 => $jwt
		]);

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

@rachmatsasongko, terimakasih mas , tapi hostingan ny lagi error , terimaskih sudah menjawab mas

avatar yusranpanca
@yusranpanca

7 Kontribusi 1 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban