【发布时间】:2021-07-11 00:47:59
【问题描述】:
我正在使用 openid-client 库,并且我让整个登录过程正常工作(Yay Me)。
然后当它回调到服务器时,我不知道如何处理返回的内容。我假设我可以解码代码,但不确定如何。
const { Issuer, generators } = require('openid-client');
var idIssuer;
var client;
const login = async (req, res)=> {
if (!idIssuer){
idIssuer = await Issuer.discover(process.env.LOGIN_URI);
}
if (!client){
client = new idIssuer.Client({
client_id: process.env.LOGIN_APPID,
client_secret: process.env.LOGIN_APPSECRET,
redirect_uris: [process.env.LOGIN_REDIRECT_URI],
response_types: ['code'],
});
}
let url = client.authorizationUrl({
scope:process.env.LOGIN_SCOPES,
state: base64url(JSON.stringify({ state: process.env.LOGIN_APPID })),
});
res.redirect(url);
}
const callBack = async (req, res)=>{
if (!idIssuer){
idIssuer = await Issuer.discover(process.env.LOGIN_URI);
}
if (!client){
client = new idIssuer.Client({
client_id: process.env.LOGIN_APPID,
client_secret: process.env.LOGIN_APPSECRET,
redirect_uris: [process.env.LOGIN_REDIRECT_URI],
//response_types: ['code'],
});
}
console.log(req.query);
/*
{
code: 's5LI-16HvCSnmi94Q74UEGmlNtE6utmGY7YaOV72s_k.C6Vt2v8uL4loPeq3YGA8bRyR8dVpU1wAEgHyLZadMhQ',
scope: 'openid',
state: 'eyJzdGF0ZSI6IlZwWkVIZVhYNnczbDh0R3JBZHFFdVZBdnlKV2NlenZVRE9FRzVDS1BRcnpZQjhkVWs4MHNHMmVoOUFMMHp0R2NRTWdMNVJtQV9MOEhpZjEzcEZTLXFBPT0ifQ'
}
*/
}
【问题讨论】: