统一登录服务

平台目前包括多个子系统、多个版本,不同版本都是使用相同的运营系统。为了方便用户使用多个版本,我们需要绑定用户的QQ、微信帐号。此外,为了最大限度地防止由于某个登录系统故障而导致用户无法使用APP的情况,我们需要一个统一的帐号管理&登录服务。这个服务就是:【统一登录服务】。主要包括以下功能: 绑定用户的 QQ、微信, ,支持多种登录方式(QQ、微信), 支持运维配置协作者QQ(代理游戏的开发商员工),提供统一的登录页面 & REST API,支持 xx 域系统的接入

1. 统一登录服务设计

统一登录服务为子系统提供统一的登录票据和票据验证方式,对子系统完全屏蔽第三方登录系统的接入差异。子系统接入蓝鲸统一登录服务后,则可实现QQ登录、微信登录,而不需要关心这两种登录方式的实现细节和接入流程;更重要的是,第三方登录系统变更时,只需要在统一登录服务上做变更,而子系统完全不需要做任何改动。在介绍具体细节之前,先看一下简化的统一登录服务的整体架构示意图:图1:统一登录服务架构示意图统一登录服务主要分为两部分:登录服务,账号管理服务。登录服务主要负责将第三方登录系统的登录票据转换为统一的登录票据,并维护票据信息,账号管理服务主要处理用户多个账号体系(QQ、微信)的映射关系。统一登录服务的核心数据是登录票据,难点是如何将登录票据跨域写入子系统的cookie中。本文先重点围绕这两部分展开。

1.1 登录票据设计

第三方登录系统验证用户登录信息成功后,统一登录服务根据登录方式、用户id、登录时间戳等信息生成原始的登录票据(o_ticket);原始登录票据(o_ticket)经过AES加密、Base64编码后生成统一的登录票据(bk_ticket)。

相关推荐

站点声明:本站部分内容转载自网络,作品版权归原作者及来源网站所有,任何内容转载、商业用途等均须联系原作者并注明来源。

相关侵权、举报、投诉及建议等,请发邮件至E-mail:service@mryunwei.com

回到顶部
1
2
3
4
# 原始登录票据
o_ticket = '登录方式|用户id|登录时间戳'
1. 统一登录票据
bk_ticket = urlsafe_b64encode(AES(o_ticket))
如果错误,返回错误信息 返回数据 没有登录票据 登录票据不合法 登录票据已过期 用户信息不存在 系统内部错误,请联系【助手】 str 接入系统id str 登录成功后的回调链接 str 默认的登录方式,可选值为:qq、xx
function callback(status){
    // 回调状态参数为2表示清除登录票据成功
    if(status == 2){
    // 你的退出登录逻辑
    }else{
    // 登出失败处理逻辑
    }
}
// 清除登录票据操作,操作成功后回调callback方法
bk_logout.logout(callback);