2、token
3、sso 单点登录
4、OAuth 第三方登录
实现流程:
缺点:
a、由于服务器要对接大量的客户端,所以服务器要存储大量的session,这岁陆会给服务器造成很大的压力
b、如果服务以集群的方式部署,为了同步登入态,那么还得同步session到每一台服务器上
c、由于seesionId是存放在cookie中的,所以无法避免一些攻击
为了解决以上问题,我们可以使用token方式
实现流程:
优缺点:
这里的token不存储在服务器,所以不会造成服务器的压力。并且服务器是集群也不需要同步数据到每台机器,不会增加维护成本。token可以存储在前端的任何地方,并不一定需要存储在cookie,提升了页面安全性。可以给token设置有效期,只要在有效期内token就一直有效,但是服务端却不容易收回有效期内token的权限。
token的生成方式:
最常见的生成token的方式是jwt(son web token)。服务器并不存储token,那后端服务是怎么校验token的呢?其实token并不是杂乱无章的字符串。
jwt由三部分组成:header、payload、signature
header 部分指定了该 JWT 使用的签名算法:
playload 部分表明了 JWT 的意图:
token的生成
服务器再校验token时,主要是判断两个方式得到的signatue是否一样
概念:
搭建一个认证中心服务,只要在该认证中心服务登录过了之后,就可以登录该服务群的任何一个服务取获取资源。
实现流程:
访问a.com下的页面,先去认证中心进行登录认证
认证中心认证完之后,继续访问a.com下的页面
访问b.com下的页面
由于浏览器存储了访问认证中心sso.com下的cookie,所以已经是登录了认证中心,认证中心直乎键顷接下发tickit,之后的流程就和访问a.com下的页面差不多了。
当服务群中的一个服务退出了登录,怎么让服务群中的其它服务也退出登录呢?
当认证中心注册服务的时候,顺便也把服务对应的api也注册好吧
a、c.com退出登录,清空c.com下的cookie
b、请求认证中心下的退出登录api
c、认证中心遍历下发过的ticket的服务,并调用这些服务的退出api
使用sso登录完成了服务集群登录共享态,但是这是基于一个共同的认证中心,其实实现起来还是比较复杂的。我们其实还可以使用第三方登录,比如微信登录亮笑。
a.com 的运营者需要在微信开放平台注册账号,并向微信申请使用微信登录功能。申请成功后,得到申请的 appid、appsecret。
要登录到一个特定的网站、应用或服务,您需要创建一个帐户并提供一些个人信息。创建帐户通常需要提供个人信息(例如电子邮件地址、密码等族袭)。一些登录页面也可能支持使用您的社交媒体帐户(如 Facebook 或 Twitter)来登录。以下是登录的一般流程:
1. 打开所需的网站/应用程序,并查找登录/注册选项。这通常位于网站的右上部分。
2. 点击“登录”按钮渗简。
3. 在登录页面上,输入您的用户名/电子邮件地址和密码,如果您使用的是第三方网站,则跟随他们的提示 *** 作。如果您是第一次登录此网站,可能需要创建一个新的帐户。
4. 提供任何额外的身份信息/身份验证信息(例如您的日期出生或电话号码)以进行丛穗裤身份验证。
5. 验证您的登录信息后,您将被重定向到您的帐户主页或您想要进入的目标页面。
6. 如果您无法登录,请查看您的帐号信息是否正确,并尝试重置密码或更改电子邮件地址。
请您注意,登录流程可能因网站/应用程序而异,并且某些网站/应用程序可能需要进行额外的身份验证以确保安全性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)