我正在创建一个Web门户。显示Web门户主页的JavaScript是敏感的,必须仅向经过身份验证的用户显示。
我目前有两个HTML文件:login.html和homepage.html
当有人通过portal.com/homepage导航到我的应用程序时,它会将用户重定向到portal.com/login
为了引起重定向,我使用了lambda。
用户登录后,我希望将其重定向到portal.com/homepage。
但是,在通过API网关将当前标头传递给lambda的情况下,我无法对用户进行身份验证,因此无法知道用户是否已登录。
我想知道如何将用户重定向到主页,并将会话信息转发到lambda,以便我的lambda可以对用户进行身份验证并返回html,而不是重定向到登录页面。
使用客户端JavaScript调用API只会将html文件返回给调用它的变量,而不是在新页面中打开它。
下面是我的lambda:
exports.login = (event, context, callback) => {
const poolId = ** value that tells me a user is authenticated **
let contents = ""
let result = {}
if (poolId) {
result = {
statusCode:302,
headers: {
poolId,
"Location": "https://portal.com/homepage"
},
}
} else {
contents = fs.readFileSync(`app/login.html`);
result = {
statusCode: 200,
body: contents.toString(),
headers: {'content-type': 'text/html'}
};
}
callback(null, result);
};
exports.hoempage = (event, context, callback) => {
const poolId = ** value that tells me my user is authenticated**
let result = {}
let contents = ""
if (poolId) {
contents = fs.readFileSync(`app/homepage.html`);
result = {
statusCode: 200,
body: JSON.stringify([event, context]),
headers: {'content-type': 'text/html'}
}
} else {
result = {
statusCode:302,
headers: {
"Location": "https://portal.com/login"
}
}
}
callback(null, result)
}
提前谢谢
答案 0 :(得分:1)
在后端,您可以向您发送jwt tocken,如果会话已过期,请验证tocken,将用户重定向到登录页面,否则让他在系统中徘徊。 请参阅以下是令牌验证机制。