0

Outlook Web アドインを開発しています。

ライブラリを介してサーバー側に渡すトークンを検証しようとしていますnode.jsが、失敗しており、その理由がわかりません。

これは、ユーザー ID トークンを取得するために行っていることです。

Office.context.mailbox.getUserIdentityTokenAsync(function(result) {
    result.value // contains the token.
    // send this value to server side, which I can see that it's working.
})

サーバー側では、トークンを取得して以下を実行します。

token; // contains the token passed from the web-app.
const jwt = require('jsonwebtoken');
const request = require('request');

let decoded = jwt.decode(token, {complete: true});

// Get the key, we'll need this later since we'll have to
// find the matching key from the config file.
let key = decoded.header.x5t;
let amurl = JSON.parse(decoded.payload.appctx).amurl;

// Make a request to the url to get the configuration json file.
request(amurl, {}, (err, response, body) => {
    let keys = JSON.parse(body).keys;

    // Filter the keys so we get the one which we can verify.
    let s = keys.filter(t => t.keyinfo.x5t === key);
    let cert = s[0].keyvalue.value;

    // Fails the verification.
    console.log(jwt.verify(token, cert));
});

明確にするために、私はトークンを正しく取得しており、この npm パッケージは他の jwt トークンに対して正常に機能しているようです。(つまり、実際には構成の問題ではありません)

4

1 に答える 1