【问题标题】:How to get value of email form JWT如何获取电子邮件表单 JWT 的价值
【发布时间】:2019-03-07 21:19:50
【问题描述】:

我正在使用对话流来创建预订表助手。 要按用户获取信息,他需要使用 google 登录,所以当完成对话时,我会获取用户的 uderId 值。 为此,我使用 jose-php 库:

header( 'Access-Control-Allow-Headers: *' );
header( 'Access-Control-Allow-Origin: *' );
header( "Access-Control-Allow-Credentials: true" );
header( 'Content-Type: application/json' );

include('../phpseclib/Net/SSH2.php');
include('../JOSE/JWT.php');
include('../JOSE/URLSafeBase64.php');
$jwt_string = 'userIdtoken';
$jwt = JOSE_JWT::decode($jwt_string);
echo $jwt['JOSE_JWT']['Claims']['email'];

问题是我收到错误打印电子邮件值! 我怎么能得到它?

$jwt 值结果如下:

JOSE_JWT Object
(
    [header] => Array
        (
            [alg] => RS256
            [kid] => cf022a49e9786148ad0e379cc854844e36c3edc1
            [typ] => JWT
        )

    [claims] => Array
        (
            [iss] => https://accounts.google.com
            [nbf] => 1551435957967
            [aud] => 284549458086-fdoluk70pqkcuh8vj4tj1dou15v444tiua.apps.googleusercontent.com
            [sub] => 1092379345381822971290339
            [email] => dasdasddas@gmail.com
            [email_verified] => 1
            [name] => frank rossi
            [picture] => https://lh4.googleusercontent.com/-79eVyjn_YU8/AAAAAAAAAAI/AAAAAAAAPBs/uvq_fruLiB0/s96-c/photo.jpg
            [given_name] => Federico
            [family_name] => Idsfdsfdsf
            [iat] => 1545351958267
            [exp] => 155143534961867
            [jti] => 428254345532cddf49dec17d24ace2e6f45f8af4b14b2
        )

    [signature] => 'somthing'
    [raw] => 'somthing'
)

【问题讨论】:

    标签: php jwt dialogflow-es


    【解决方案1】:

    在我看来,这个问题是一个错字。你写了$jwt['JOSE_JWT']['Claims']['email'];,但关键是claims,而不是Claims

    另外,$jwt 似乎是 JOSE_JWT 类的对象,而不是数组。因此,不能像这样将它与下标运算符一起使用。您应该改为访问其属性:

    $jwt->claims['email']
    

    【讨论】:

    • 响应为致命错误:无法在第 13 行的 xxxx.php 中使用 JOSE_JWT 类型的对象作为数组,第 13 行是最后一个回显
    • 好的,这不会出错,但是输出没有被解码....为什么?因为如果 make print_r($jwt) 我看到了我写的数组
    • “未解码”是什么意思?输出是什么?
    • 类似的东西:eyJhbGciOiJSUzI1NiIsImtpZCI6ImNmMDIyYTQ5ZTk3ODYxNDhhZDBlMzc5Y2M4NTQ4NDRlMzZjM2VkYzEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJo
    • 你有这个JOSE_JWT类的文档吗?
    猜你喜欢
    • 2011-10-12
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    相关资源
    最近更新 更多