时间:2023-08-24 14:36:08 浏览:85
当我们想要使用网站的功能时,通常需要注册我们想要使用的帐户。所有网站都使用同一个用户名和密码,可以解决账号管理的问题,但也增加了账号密码泄露的风险。
虽然现在的网站提供短信验证码登录技术,但是今天我们要讲一个“老”技术,——openid,看看以前的技术是如何解决密码太多不方便管理的问题的。
基本概念
在正式介绍openid之前,先熟悉以下基本概念。
认证:身份识别,简称认证,简单来说就是如何识别你是某人;
authorizationserver/identity provider:负责认证的服务称为授权服务器或身份提供者(idp简称);
authorisation:资源访问,简称授权,就是简单的给某人一定的权限;
服务提供者/资源服务器:负责提供资源的服务(api调用)称为资源服务器或服务提供者,简称sp
与openid相关的几个概念
用户:网站访问者操作的浏览器
rp:依赖方;服务提供商是用户想要访问的网站。
op:openid提供者;openid提供者是提供openid注册的服务提供者。
openid简介
openid是由livejournal和sixapart开发的一套身份验证系统。这是一个以用户为中心的数字识别框架,它是开放的、分散的和免费的。
openid的创建是基于这样一个概念,即我们可以通过uri认证一个网站的唯一身份(也称为网址或网址)。同样,我们也可以通过这种方式认证用户的身份。不基于申请网站的注册程序,不限于单个网站的登录和使用。openid账号可以在任何openid应用网站使用,避免了多次注册和填写身份信息的繁琐过程。简单来说,openid是一个以用户为中心的分布式认证系统。用户只需要注册就可以获得openid,然后就可以用这个openid账号在多个网站之间自由登录使用,而不必为每个网站注册一个账号。
openid的工作流程
假设你已经在网站a上注册了openid账号(网站a是op角色),网站b(网站b是rp角色)支持openid账号登录,并且你从未登录过。这时,当你在b网站对应的登录界面输入你的openid账号进行登录时,浏览器会自动转到a网站的一个页面进行认证。此时,您只需输入在a网站注册时提供的密码即可登录a网站,在对b网站进行验证和管理(永久允许、只允许一次或不允许)后,页面将自动转移到b网站。如果选择允许,就登陆b网站。这时候你就可以实现b网站的所有功能作为你的openid账号了。
上面描述了网站b使用网站a提供的openid登录,你也可以使用这个openid登录其他支持openid的网站。
openid的获取流程
首先,用户选择一个openid服务提供商注册一个openid帐户(就像传统的网站注册一样)。注册后,用户得到一个openid url,比如http:/collinye.openid.com,可以简单理解为一个用户名。
访问支持openid的网站。登录时,输入您的openid url。通常这个登录页面的输入框会标上如上图的openid,然后点击登录即可。
之后会跳转到你的openid服务商网站,要求你输入注册时填写的密码。密码验证后,系统会询问您是否允许网站使用您的openid登录。许可后会跳回原网站,显示登录成功,然后你就可以作为注册人访问网站了。
认证流程
最终用户请求登录rp网站,用户选择openid登录。
rp向最终用户返回openid的登录界面;
用户输入openid,rp网站标准化用户的openid。这个过程比较复杂,因为openid可能是uri或者xri,所以标准化的方法不一样。
rp和op相连;
rp请求op检查用户身份,op检查用户登录。如果用户尚未登录,请要求用户进行登录身份验证。
用户登录op,登录后查看rp请求什么信息。如果没有资料,填写(http://www . sina.com/);
op将登录结果返回给rp,rp对op的结果进行分析,rp分析后,如果用户合法,则返回用户已经成功登录,可以使用rp服务。
openid优缺点
openid主要负责认真,用户首次登陆注册可能还需要其他必要信息,可以在这个步骤补全
优点
简化注册和登录流程:一定程度上避免了重复注册和填写身份信息的繁琐过程,不需要通过注册邮件确认,登录更快。
一次注册,无处不在:省去记忆大量账号的麻烦,一个openid可以在任何支持openid的网站上自由登录。
降低密码泄露风险:频繁登录各种网站,很容易让垃圾网站偷偷收集密码和信息,或者以用户身份发送垃圾信息。
用户拥有账户信息的控制权:根据网站的信任程度,用户可以明确控制哪些档案信息可以共享,如姓名、地址、电话号码等。
对用户
共享用户资源给所有支持openid的网站带来价值。
相当一部分高端注册用户可以直接使用,无需从头开始;
你不必承担构建自己的会员系统或登录功能所需的开发成本、机器、带宽和安全成本;
用户数据是安全的,用户数据不是统一存储的,用户可以随意选择和更改存储的服务器。没有组织,任何地方都无法生根,任何机构和个人都无法从中获利。
劣势
任何人都可以建立一个网站来提供openid验证服务,但是网站的性能参差不齐,导致openid验证过程不稳定。
如果提供openid认证服务的网站突然关闭,大量用户可能无法使用多个网站的服务。
目前几乎所有支持openid的网站都非常谨慎地将其作为可选的辅助登录方式,这将在很大程度上阻碍openid的发展。
目前支持openid的网站不多,其独特的用法也不为大多数用户所熟悉。
密码安全性降低。只要openid密码泄露,几乎所有网站都会泄露。这对应的是“一个登记,处处用”,即“一漏,处处漏”。
openid并不是真正的开放。很多网站表面上都支持openid。其实他们不断骚扰openid用户,在自己的网站上注册账号,在背后暗中沉淀openid用户。所以,目前开放集团内部各子公司的用户系统,openid还是可行的,对于是否对外公司使用openid,要慎重。
openld是什么意思(openid获取失败什么意思)
。
1.字面意思很容易理解,就是appid和openid不匹配。调用微信微信官方账号支付和applet支付就是这样的逻辑,传递的参数中必须有openid字段。
2.同一个人对于不同的微信官方账号会有不同的openid字段。
3.检查微信官方账号与当前微信官方账号id是否不同。乍一看,真的不一样。
@ post mapping(" log in _ by _ wei inputic ")
//public object log in _ by _ weiinputic(@ request body string body,httpersvletrequest request){
//@ getmapping(" log in _ by _ wei inputic ")
public object log in _ by _ weiinputic(@ request body string body,httpservletrequest request) {
system . out . println(" body======" body);
string code=jacksonutil . parsestring(body,“code”);
system . out . println(" code======" code);
//wxlogininfo wxlogininfo=new wxlogininfo();
//**********
//app_id
//app _秘
string app _ id=";
string app _ secret=";
4.问题解决。
相关文章
怀孕周期
备孕分娩婴儿早教
猜你喜欢