登录实现流程

登录实现流程,第1张

1、cookie+session

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. 如果您无法登录,请查看您的帐号信息是否正确,并尝试重置密码或更改电子邮件地址。

请您注意,登录流程可能因网站/应用程序而异,并且某些网站/应用程序可能需要进行额外的身份验证以确保安全性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12358484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存