سلام .
نحوه دریافت توکن از طریق HEADER(bearer) در php خام چطوری هستش؟
ورژن php 8.1 .
من واسه دیکود کردن توکن از روش زیر استفاده میکنم ولی خطا میده. نوع خطا ==> (Wrong number of segments)
require_once 'vendor\autoload.php';
use Firebase\JWT\JWT;
$data = json_decode(file_get_contents("php://input"));
$secret_key = "ELITE....";
$jwt=isset($data ->jwt) ? $data->jwt : "";
if($jwt){
try {
$decoded = JWT::decode($jwt, $secret_key, array('HS384'));
echo json_encode(array(
"message" => "Access granted: ".$jwt,
"error" => $e->getMessage()
));
}catch (Exception $e){
http_response_code(۴۰۱);
echo json_encode(array(
"message" => "Access denied.",
"error" => $e->getMessage()
));
}
}
ولی به صورت دستی توکن وارد میکنم انجام میشه مثل کد پایین:
require_once 'vendor\autoload.php';
use Firebase\JWT\JWT;
use Firebase\JWT\key;
try {
$jwt = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJodHRw";
$secret_key = "ELITE_";
$json_data = JWT::decode($jwt,new key($secret_key,"HS384"));
$json_data = (array) $json_data;
$json_data['data'] = (array) $json_data['data'];
$stmt = $db->prepare("SELECT * FROM user WHERE id_phone = :userId");
$stmt->bindParam(":userId", $json_data['data']['userId']);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result , JSON_HEX_TAG | JSON_HEX_QUOT | JSON_HEX_APOS | JSON_HEX_AMP);
} catch (Exception $e) {
echo $e->getMessage();
}
از کتابخانه composer require guzzlehttp/guzzle:^7.0 که استفاده میکنم خطا میده ورژن 8.1 php قبول نمیکنه.
سلام
کدوم خط به این خطا میخورین ؟
متن کامل خطارو به همراه یه عکس بازرید لطفا
داده ارسالیتون رو هم کامل بزارید
احتمالا مشکل شما عدم ارسال درست داده به سروره
میتونید AnyDesk بدید بنده روی سیستمتون بررسی کنم ؟
اگر میتونید تشریف بیارید تلگرام : @ehsndvr
@m.r.dude.body لطفا روش حلتون رو بنویسید که بقیه عزیزانی که به این مشکل میخورن بدونن باید چیکار بکنن.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟