راکت
حل شده

دریافت توکن از طریق هدر bearer

6 پاسخ

سلام .
نحوه دریافت توکن از طریق 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 قبول نمیکنه.

Dude
Dude
@m.r.dude.body
ثبت پرسش جدید

پاسخ‌ها

6
Dude
Dude
@m.r.dude.body

تخصص: هنوز زوده

بهترین پاسخ

مشکل از لوکال xampp بود که توکن دریافت نمیکرد .
ولی رو هاست توکن براحتی دریافت میشه.

احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

سلام
کدوم خط به این خطا میخورین ؟
متن کامل خطارو به همراه یه عکس بازرید لطفا
داده ارسالیتون رو هم کامل بزارید

Dude
Dude
@m.r.dude.body

تخصص: هنوز زوده

سلام.
@ehsndvr
اصلا توکن نمیتونم دریافت کنم null میشه.
این خطا بالا هم مربوط به عدم دریافت توکن هستش.
ولی به صورت دستی توکن وارد میکنم درسته .

شاید پاسخ شما همین‌جا باشد

احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

احتمالا مشکل شما عدم ارسال درست داده به سروره
میتونید AnyDesk بدید بنده روی سیستمتون بررسی کنم ؟
اگر میتونید تشریف بیارید تلگرام : @ehsndvr

Dude
Dude
@m.r.dude.body

تخصص: هنوز زوده

@ehsndvr
مشکل حل شد.

احسان داوری
احسان داوری
@ehsndvr

تخصص: برنامه نویس

@m.r.dude.body لطفا روش حلتون رو بنویسید که بقیه عزیزانی که به این مشکل میخورن بدونن باید چیکار بکنن.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام