📅  最后修改于: 2023-12-03 14:54:37.109000             🧑  作者: Mango
在前端开发中,常常会涉及到与后台服务的交互操作,在业务逻辑的处理中需要对用户身份进行验证和认证。而护照JS就是一种能够对用户进行身份认证验证的Javascript库,支持本地和远程的身份验证请求,并提供了一些默认的策略。
护照JS主要用于客户端的身份验证,避免通过客户端直接请求服务器接口获取敏感数据,防止未经验证的用户操作对服务器造成安全隐患。
护照JS提供了默认的本地策略,包括Cookie策略、LocalStorage策略、SessionStorage策略,用于存储用户身份认证相关的信息,从而避免通过传递url参数的方式进行身份验证。
Cookie策略是默认的存储方式,它可以向服务器发送HTTP请求并获取响应,从而在本地存储用户信息,避免用户重复登录。
const token = '1234567890';
// 写入Cookie
document.cookie = `token=${token}`;
// 读取Cookie
const cookies = document.cookie;
LocalStorage策略是一种在本地浏览器中存储数据的方法,该方法只能存储字符串类型的数据。
// 写入LocalStorage
localStorage.setItem('token', token);
// 读取LocalStorage
const value = localStorage.getItem('token');
SessionStorage策略与LocalStorage策略相似,不同点是SessionStorage策略在用户会话结束后会自动清空存储的数据。
// 写入SessionStorage
sessionStorage.setItem('token', token);
// 读取SessionStorage
const value = sessionStorage.getItem('token');
护照JS提供了一些默认的响应处理函数,可根据实际需求进行自定义,实现业务逻辑的处理。
当未经授权的用户访问需要身份认证的资源时,“onUnauthorized”将被触发。可以在“onUnauthorized”里面做一些跳转页面或者提示用户的操作。
const passportOptions = {
onUnauthorized: function(req, res) {
alert("请先登录!");
window.location = "/login";
}
};
当用户通过身份验证时,“onAuthenticated”将被触发,可以在“onAuthenticated”中获取我们需要的用户身份信息,以便后续业务逻辑的处理。
const passportOptions = {
onAuthenticated: function(user) {
alert(`欢迎您,${user.name}`);
}
};
护照JS是一种非常方便的身份认证验证工具,可以有效地确保前端应用程序的安全性,并提供了灵活自定义的功能。在实际开发过程中,我们需要根据实际情况选择合适的本地策略,并结合响应处理函数,以实现用户身份认证和业务逻辑的完整功能。