Postingan lainnya
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
4 Jawaban:
Script buat encode sama decodenya gimana gan? Tampilin di sini juga supaya bisa dilihat.
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
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
]);
@rachmatsasongko, terimakasih mas , tapi hostingan ny lagi error , terimaskih sudah menjawab mas