【登录知多少,OIDC 大家都在用,一文速通流程 】

业务开发,避免不了登录的环节,登录的方式很多,除了用户密码,短信验证码,邮箱等。其中还有一种不可忽略,其就是借助第三平台如Google账号的登录方式 - OIDC。

前提介绍 - OIDC

OIDC(OpenID Connect)是一个基于 OAuth 2.0 的身份验证协议,用于在应用程序之间安全地传递身份信息。OIDC提供了 身份验证,单点登录(SSO)等功能。

以下是使用授权码模式的典型 OIDC 登录流程:

  1. 用户请求登录
    • 用户通过客户端(应用程序)请求登录。
    • 客户端将用户重定向到授权服务器的登录页面。

  2. 用户认证
    • 用户在授权服务器的登录页面输入凭据进行认证。
    授权服务器验证用户身份后,生成一个授权码,并将用户重定向回客户端

  3. 交换授权码
    • 客户端接收到授权码后,向三方平台后端发送请求。
    • 三方平台后端 在拿着授权码授权服务器 验证授权码。
    • 验证授权码通过后,则三方平台后端 会生成登录态并返回给客户端。

  4. 用户登录成功
    • 用户成功登录并可以访问客户端的受保护资源。

如果光看这个介绍,可能不太直观。下面通过1个例子,2个问题,3个记忆点 , 来和大家快速入门,看懂OIDC整体流程。

1个例子

使用OIDC流程,使用Google账号,登录第三方网站Medium 举例,

1)登录方式选择 Goolge账号。

2)会跳转到Google的登录页面,输入Google账号密码。

3)输入Google账号密码后,会再跳回到Medium网站上,并完成了在Medium上的登录。

就此完成了 使用Google账户登录第三方网站的流程。

2个问题

关于登录,我们对于要登录的用户,总要问2个问题

  • 登录的用户是谁
  • 怎么确定就是这个谁

就像有个人 出差到外地办事之前,先去自己的单位,说”我是xxx,要外出到某地,这个是我的身份证明, 我要办个出门条”,办理出门条后,后续拿着这个出门条作为凭证,可以出入一些相关的机关单位。

对应到上面的流程就是 ,Google作为签发出门条的单位,用户输入了自己Google的账号密码 ,给用户生成了带有个人信息的出门条,随后用户带着出门条,交给了其它相关单位 比如上面的Medium,Medium收到后放行。

3个记忆点

回到OIDC的流程,

  1. 用户请求登录
    • 用户通过客户端(应用程序)请求登录。
    • 客户端将用户重定向到授权服务器的登录页面。

  2. 用户认证
    • 用户在授权服务器的登录页面输入凭据进行认证。
    授权服务器验证用户身份后,生成一个授权码,并将用户重定向回客户端

  3. 交换授权码
    • 客户端接收到授权码后,向三方平台后端发送请求。
    • 三方平台后端 在拿着授权码授权服务器 验证授权码。
    • 验证授权码通过后,则三方平台后端 会生成登录态并返回给客户端。

  4. 用户登录成功
    • 用户成功登录并可以访问客户端的受保护资源。

上面的文字描述有些多 ,且有多个角色,第一次看可能需要梳理消化下。其实对于OIDC这个流程,有3个记忆点,对照下图看,过程很简单,
1,跳转登录页
2,完成账号登录
3,消费登录码,生成业务登录态

结语

至此通过1个例子,2个问题,3个记忆点 ,我们对OIDC的流程 有了一个整体的了解。
当然OIDC的流程除了借助Google作为授权服务器,还有其它方式,比如借助开源框架keycloak 来自己搭建授权服务器,这个后面有机会再介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值