令牌格式无效

时间:2018-06-13 06:42:58

标签: authentication opentok tokbox

我正在尝试在我的Web App中使用OpenTok API创建会话。我收到以下错误。

请求:

$query = "SELECT DISTINCT
id,
post_title,
guid,
pm.meta_value AS 'address',
pm2.meta_value AS 'latitude',
pm3.meta_value AS 'longitude',
pm4.meta_value AS 'price',
pm5.meta_value AS 'bedrooms',
pm6.meta_value AS 'baths',
pm7.meta_value AS 'show_date',
wm2.meta_value AS 'image',
(SELECT 
        GROUP_CONCAT(wp_terms.name
                SEPARATOR ', ')
    FROM
        wp_terms
            INNER JOIN
        wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id
            INNER JOIN
        wp_term_relationships wpr ON wpr.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
    WHERE
        taxonomy = 'property-type'
            AND wp_posts.ID = wpr.object_id) AS 'property_type',
(SELECT 
        GROUP_CONCAT(wp_terms.name
                SEPARATOR ', ')
    FROM
        wp_terms
            INNER JOIN
        wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id
            INNER JOIN
        wp_term_relationships wpr ON wpr.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
    WHERE
        taxonomy = 'listing-type'
            AND wp_posts.ID = wpr.object_id) AS 'listing_type'
FROM
wp_posts
    INNER JOIN
wp_postmeta AS pm ON pm.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta AS pm2 ON pm2.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta AS pm3 ON pm3.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta AS pm4 ON pm4.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta AS pm5 ON pm5.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta AS pm6 ON pm6.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta AS pm7 ON pm7.post_id = wp_posts.ID
    INNER JOIN
wp_postmeta wm1 ON (wm1.post_id = wp_posts.id
    AND wm1.meta_value IS NOT NULL
    AND wm1.meta_key = '_thumbnail_id')
    INNER JOIN
wp_postmeta wm2 ON (wm1.meta_value = wm2.post_id
    AND wm2.meta_key = '_wp_attached_file'
    AND wm2.meta_value IS NOT NULL)
WHERE
post_type = 'property'
    AND pm.meta_key = 'property_address'
    AND pm2.meta_key = 'property_lat'
    AND pm3.meta_key = 'property_lng'
    AND pm4.meta_key = 'property_price'
    AND pm5.meta_key = 'property_beds'
    AND pm6.meta_key = 'property_baths'
    AND pm7.meta_key = 'property_show_date'";

错误:

https://api.opentok.com/session/create
Method: POST
Headers: Accept:application/json
Headers: X-OPENTOK-AUTH :{"iss":"<My api key>","ist":"project","iat":"1528482600000","exp":"1528569000000","jti":"jwt_nonce"}

如果我在标题中设置了X-TB-PARTNER-AUTH :::它运行良好。

注意:在其文档中指定使用此弃用身份验证形式的TokBox将于2017年7月到期。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

Tokbox QA的工作人员在这里。

我已成功尝试使用此处的代码:

https://tokbox.com/developer/rest/#authentication

import jwt # See https://pypi.python.org/pypi/PyJWT
import time
import uuid
print jwt.encode({"iss": "my-OpenTok-account-API-key",
    "iat": int(time.time()),
    "exp": int(time.time()) + 180,
    "ist": "project",
    "jti": str(uuid.uuid4())},
    'my-OpenTok-API-secret',
    algorithm='HS256')

请注意 jti 字段中的轻微修改(包括str)。 当我运行这个脚本(使用我的API密钥和秘密)时,我获得了令牌,并将其存储在环境变量TOKEN中。

电话会是:

curl -v -X POST https://api.opentok.com/session/create  -H "x-opentok-auth: $TOKEN"

而且,服务器响应的是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><sessions><Session><session_id>2_MX4xMDB-fjE1Mjg4Nzg4MTE4Mjd-SWhJN0JFd0plRlhPUXBLanhSN0xjVjBSfn4</session_id><project_id>100</project_id><partner_id>100</partner_id><create_dt>Wed Jun 13 01:33:31 PDT 2018</create_dt><session_segment_id>d14b6edc-07c7-4b90-a4a5-962d864a86f4</session_segment_id><ice_credential_expiration>86100</ice_credential_expiration><properties><p2p><preference value="disabled"/></p2p><h264Codec>none</h264Codec><vp9Codec>none</vp9Codec><vp8Codec>all</vp8Codec><priorityVideoCodec>vp8</priorityVideoCodec><clientCandidates>all</clientCandidates></properties></Session></sessions>

我希望这会有所帮助。