Reveal SDK の Node.js サーバーサイドモジュールにおいて、Authorization Header に任意のスキーマを指定するには、RVHeadersDataSourceCredentials を利用することができます。
実装例:下記コードスニペットの 15 行目を参照ください。
const userContextProvider = (request) => {
const token = request.headers["x-reveal-token"];
const userInformation = JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
console.log("userInformation", userInformation);
var props = new Map();
props.set("token", token);
props.set("roles", userInformation.roles);
return new reveal.RVUserContext(userInformation.username, props);
};
const authenticationProvider = async (userContext, dataSource) => {
if (dataSource instanceof reveal.RVRESTDataSource) {
const token = userContext.properties.get("token");
return new reveal.RVHeadersDataSourceCredentials("Authorization", `JWT ${token}`);
}
return null;
};
const revealOptions = {
userContextProvider: userContextProvider,
authenticationProvider: authenticationProvider,
localFileStoragePath: "data",
};
//add reveal sdk
app.use("/", reveal(revealOptions));