Dude
2 سال پیش توسط Dude مطرح شد
6 پاسخ

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

سلام .
نحوه دریافت توکن از طریق 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
تخصص : هنوز زوده
@m.r.dude.body 2 سال پیش مطرح شد
0

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


احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
0

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


Dude
تخصص : هنوز زوده
@m.r.dude.body 2 سال پیش آپدیت شد
0

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


احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
0

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


Dude
تخصص : هنوز زوده
@m.r.dude.body 2 سال پیش مطرح شد
0

@ehsndvr
مشکل حل شد.


احسان داوری
تخصص : برنامه نویس
@ehsndvr 2 سال پیش مطرح شد
0

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


Dude
تخصص : هنوز زوده
@m.r.dude.body 2 سال پیش مطرح شد
0

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


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

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