这些是一些常见问题,可以真正看到使用Aurelia检测身份验证和授权的不同实现。所有这些都是在安全的后端服务环境中发言。
假设您正在使用服务器的cookie身份验证。您如何确认Aurelia中的cookie向用户显示他们已登录?
在Aurelia文档(见here)中,我们可以看到以下内容:
class AuthorizeStep {
run(navigationInstruction, next) {
if (navigationInstruction.getAllInstructions().some(i =>
i.config.settings.roles.indexOf('admin') !== -1)) {
var isAdmin = /* insert magic here */false;
if (!isAdmin) {
return next.cancel(new Redirect('welcome'));
}
}
return next();
}
}
/* insert magic here */
对你来说是什么样的?它应该是什么样的?
答案 0 :(得分:1)
我目前正在处理的应用程序在登录时从服务器请求令牌。使用XHR的路线。如果此请求成功,并且从后端收到令牌,则令牌存储在cookie中,我们将路由从登录页面路由到应用程序的主要内容。然后我们可以设置一个全局变量' loggedIn'显示用户已登录等。每当我们通过XHR向后端发出进一步请求时,我们会发送带有请求的令牌。
魔法'在授权步骤中只是一些逻辑,用于检查用户是否已登录,或者在上面的示例中是管理员。
这可能只是一个全局标志(我想象可能被绕过),或者是服务器的实际请求,它验证所持有的cookie是否有效。