扫码登录(QR)开发手册

开发了个应用, 既有WEB端也有移动端? 想支持APP扫码登录?虽然功能不大, 写起来也需要10天半个月的。 如果用户过万了,是Socket长连接还是定时轮询? 对不起, 基本上架构就得几个月了。

九州云腾的QR扫码登录, 将我们的IPG扫码登录模块抽象成服务端的SDK, 只要注册成我们的开发者, 就可以顺畅的使用。整个实现是将你原有的WEB应用, 通过将我们的JS 插件植入, 同时开发一个简单的Servlet作为请求的CallBack请求和返回确认的接口, 就可以完成WEB端的改造。这个类似FIDO的UAF ,  每次认证的时候, 需要传递一个IDP的主账户的UUID过去, 然后看被绑定业务应用的子账户能否通过认证。这个在IDP端是不存放业务应用的子账户信息的。

QR JS基本流程图

集成的JS代码部分主要如下:

<script src=”https://jzyt.idsmanager.com/api/public/qr/javascript/doCKr8xO4QTk.jsx?state=8e71308d1b4b4de499530fcdc5ad8f8bLV2lBrP5“></script>
<script>new IDPQR()</script>

集成的时候, 需要考虑用户的第一次绑定和每天的登录过程:

第一次绑定: 一个WEB应用RP, 用户在登录了以后, 可以通过JS 来调用我们的SDK, 生成一个绑定的QR码, 内含一个挑战随机码state。使用了我们的“IDP身份管家”手机端APP扫码后, 通知到IDP, IDP 通过WEB Socket将加密后的用户标识UUID通知到RP(是否已经确认结束), RP将该UUID与当前登录的用户绑定, 未来, 凡是来自这个IDP 用户UUID的确认, 都是这个用户的扫码登录确认。  然后通过一个Callback URL (RP 提供),传递回RP并确认这个挑战码, RP需要绑定这个用户。

注: 挑战码的作用是只能用一次,防止未来可能有的注入攻击。

如果RP用户不存在, 则在第一次绑定的时候, RP系统提示用户会创建这个用户并创建登录成功的Session, 同时可以要求用户完善姓名, 手机号等更多信息。

如上所述,尽管IDP扫码和返回是一样的, RP开发者可以根据自己是针对一个已经登录的用户还是一个新用户注册2种逻辑来进行处理。

每天的确认: 一个RP用户登录了以后, 可以通过来调用我们的JS, 生成一个绑定的QR码, 内含一个挑战随机码state。使用了我们的“IDP身份管家”手机端APP扫码后, 通知到IDP, IDP 通过WEB Socket将加密后的用户标识UUID通知到RP,RP将登录过程设置为确认已经通过, 然后通过一个Callback URL (RP 提供),传递回RP并确认这个挑战码。 RP需要创建一个登录成功的Session, 用户登录完成。

Callback URL有三种不同的行为, 仅绑定,创建用户并登录, 仅登录, 为了简化你的工作,针对Callback URL,  我们对应有Java, PHP, Python等不同的开发包及样本代码, 你可以参考使用。 未来, 在移动端, 只要在你的应用中导入我们的QR扫码开发者SDK, 就可以具有扫码, 返回确认等一系列功能, 使自己的APP快速具备象阿里腾讯一样的扫码登录功能!

欲知详情, 请注册成为我们的开发者并索取详细的QR扫码集成文档, 或联系我们的咨询热线!

One thought on “扫码登录(QR)开发手册

zhongshu进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注