我正在尝试将示例从 Node.js 更改为 React,但是
app.post('/AuthCallBack'
不在这里。
并且 token 是 undifiend 或 null
如何更改代码?
app.get('/', function (req, res) {
var idpUrl = config.AuthorizeUrl;
var params = '?client_id=' + config.ClientID;
params += '&redirect_uri=' + encodeURIComponent(config.AuthCallbackUrl);
params += '&response_mode=form_post';
params += '&response_type=code+id_token';
params += '&scope=openid+profile';
params += '&nonce=' + uuid.v4();
res.redirect(idpUrl + params);
});
app.post('/AuthCallBack', function (req, res) {
var idToken = req.body.id_token;
var cert = fs.readFileSync(config.VerifyCertFile);
var decoded;
try {
decoded = jwt.verify(idToken, cert, {
algorithms: 'RS256',
issuer: config.Issuer,
});
} catch (err) {
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
res.status(err.status || 500);
res.render('error');
}
res.render('home', { payload: decoded });
});
函数 adLogin(){
axios.get("/",{headers: {
Authorization : jwt
}}).then(function (response){
//response
const token: string = response.data['token'] as string;
const refreshToken: string = response.data['refresh_token'] as string;
localStorage.setItem('token', token);
localStorage.setItem('refreshToken', refreshToken);
var idpUrl = AppConfig.AuthorizeUrl;
var params = "?client_id=" + AppConfig.ClientID;
params += "&redirect_uri=" + encodeURIComponent(AppConfig.AuthCallbackUrl); // encodeURIComponent("https://localhost:8888/AuthCallBack");
params += "&response_mode=form_post";
params += "&response_type=code+token";
params += "&scope=openid+profile";
params += "&nonce=" + uuidv4;
window.location.href = idpUrl+params
}).catch(function (error){
});
axios.post('/AuthCallBack', data, {
headers: {
Authorization : jwt
}
}).then(function(response) {
const token: string = response.data['token'] as string;
const refreshToken: string = response.data['refresh_token'] as string;
var cert = fs.readFileSync(AppConfig.VerifyCertFile);
var decoded;
localStorage.setItem('token', token);
localStorage.setItem('refreshToken', refreshToken);
});
}
我试过了,但没用