私のフロントエンドアプリケーションはです。 gmailアカウントを使用して認証されました。ノードjsのサーバー側でgoogle authトークンを確認するにはどうすればよいですか?
私は、認証が成功した後id_tokenを取得し、トークンベアラとしてとして認証ヘッダーを送信します。
認可のベアラがnodejsサーバ側で
をtoken_id、私はトークンを確認するには、次のメソッドを呼び出します。私は上記のメソッドを呼び出すと、私は常にエラーを以下に無効なトークン応答を取得
exports.verifyUser = function(req, res, next) {
var GoogleAuth = require('google-auth-library');
var auth = new GoogleAuth();
var client = new auth.OAuth2(config.passport.google.clientID, config.passport.google.clientSecret, config.passport.google.callbackURL);
// check header or url parameters or post parameters for token
var token = "";
var tokenHeader = req.headers["authorization"];
var items = tokenHeader.split(/[ ]+/);
if (items.length > 1 && items[0].trim().toLowerCase() == "bearer") {
token = items[1];
}
if (token) {
var verifyToken = new Promise(function(resolve, reject) {
client.verifyIdToken(
token,
config.passport.google.clientID,
function(e, login) {
console.log(e);
if (login) {
var payload = login.getPayload();
var googleId = payload['sub'];
resolve(googleId);
next();
} else {
reject("invalid token");
}
}
)
}).then(function(googleId) {
res.send(googleId);
}).catch(function(err) {
res.send(err);
})
} else {
res.send("Please pass token");
}
}
。
Error: No pem found for envelope: {"alg":"RS256","kid":"c1ab5857066442ea01a01601
850770676460a712"}
at OAuth2Client.verifySignedJwtWithCerts (\node_modules\google-auth-libr
ary\lib\auth\oauth2client.js:518:13)
- これはトークンを検証するための適切なアプローチですか?
- id_tokenを認証ベアラーとして送信しますか?それとも認可のみですか?
- id_tokenをサーバー側に送信するにはどうすればよいですか? URLを介して、ヘッダー?
- 私は間違っていますか?
ご協力いただきまして誠にありがとうございます。
あなたが記事で私の他の質問に答えることができますしてください? –
私の投稿を更新しました。助けてくれることを祈っています。 –
"認証ヘッダーにJWTトークンを送信できますが、問題はありません" - しかし、これは認証ヘッダーではなく、認証用です。誰かが同時に(認証と承認)の両方を送信する必要がある場合はどうなりますか? –