社交登录配置
[一]概述
社会化登录,用户使用社交平台的身份认证信息在第三方应用或网址进行认证登录的流程。社会化登录不仅有助简化用户在第三方平台的登录体验,同时也为用户在第三方平台创建新账号提供了一种更为简单便捷的方式。
Dante Cloud 中的社会化登录相关主要包含以下几个方面:
- 第三方社会化账号登录:使用第三方应用提供的认证实现 Dante cloud 系统的登录,如果是第一次使用,会自动进行注册
- 第三方社会化账号绑定:如果已经拥有了 Dante Cloud 账号,可以在用户账户管理页面手动绑定第三方应用账号
- 可用社会化登录自动配置:系统统代码和前端操作,会根据配置好的社会化登录方式,无需修改代码自动进行调整和适配
- 融合第三方应用登录:对于非 OAuth2 模式的第三方应用登录方式,例如:微信小程序直接登录方式,Dante Cloud 也提供了支持。
为了方便用户的使用,Dante Cloud 采用自定义授权模式的方式,实现所有社会化账号等方式与 Spring Authorization Server 授权服务器有机融合。通过配置自定义的社会化模式(Social Credentials Grant
),使用统一的 /oauth2/token
接口,就可以实现所有第三方社会化账号的融合登录。
目前,Dante Cloud 社会化模式(Social Credentials Grant
)支持以下几方面的社会化登录:
- 手机短信验证码登录:为了实现登录方式的统一,将短信验证码方式也融合到社会化登录模式中。
- 微信小程序和公众号登录
- 第三方应用社会化账号登录:基于 JustAuth 实现,所以 JustAuth 支持的厂商,Dante Cloud 都支持。
[一]手机短信验证码登录
[1]配置
Dante Cloud 新版本短信模块改为使用 SMS4J
组件,在服务的配置文件 herodotus-cloud-social.yaml
中,如果检测到配置了 SMS4J
所需的配置信息,系统就会自动开启短信验证码登录的支持。SMS4J
具体使用和配置方式,参见:SMS4J官网
[2]沙盒模式
开通短信支持是需要花费费用的,有些朋友可能不想开通而只想验证一下 Dante Cloud 对短信验证码登录的支持程度。为了解决这个问题,Dante Cloud 专门提供了短信登录的 沙盒
模式,这种模式下不需要真正的开通短信通道,只需要在系统配置中进行简单配置,就可以模拟整个短信验证码的登录过程。具体的配置可以参见: 短信接入配置
重要
Dante Cloud 手机验证码登录沙盒模式,并不是简单的“作假”,而是除了没有真正的发送短信到手机以外,登录过程所有的代码流转和真正的手机验证码登录一模一样。
[3]登录
SMS 相关配置完成之后,就可以直接使用标准的登录接口 /oauth2/token
进行登录,如下图所示

[二]JustAuth登录
Dante Cloud 中,绝大部分第三方社会化账号登录,都是基于 JustAuth 实现。在服务的配置文件 herodotus-cloud-social.yaml
中,如果检测到 JustAuth 相关配置,就会自动开启第三方社会化账号登录。
同时,会自动检测第三方社会化配置的内容,在前端显示对应的社会化登录以及手动绑定内容。例如:第三方社会化账号登录只配置了 Gitee 登录,那么在登录界面以及手动绑定界面就只会出现 Gitee 相关内容
[1]配置
因为使用的是 JustAuth,而JustAuth 也有自身的配置内容,所以 Dante Cloud JustAuth 相关配置内容仅是对 JustAuth 默认配置简单的包装。例如:核心配置内容 herodotus.assistant.access.justauth.configs
对应的参数,就是直接使用 JustAuth 的 AuthConfig 对象,所以与 JustAuth 配置是完全对应的。具体使用和配置方式,参见:JustAuth官网
[2]使用
JustAuth 中提供的所有第三方社会化账号登录,核心原理就是 OAuth2 中的授权码模式。所以搞清楚 OAuth2 授权码模式,使用 JustAuth 只要搞懂发送和返回的参数以外,就不会有任何问题。
基本的原理也比较简单,即用第三方系统提供的OAuth2认证,先在第三方系统进行登录认证,然后调用对方的接口获取到对方的用户信息,在用这个用户信息与 Dante Cloud 中的用户信息进行关联,最后生成并返回 Dante Cloud 中的 Token,以实现登录。
提示
既然第三方社会化账号登录核心原理就是 OAuth2 中的授权码模式,那么就意味着授权码模式的最后一步,要返回到你所指定的 redirect_url 地址。这个地址通常是自己系统内的地址,这意味着如果要使用第三方社会化账号登录就要保证你所指定的 redirect_url 地址,可以被外网访问的到,否则整个认证过程无法完成。
如果你的系统是纯内网环境,那么就不要考虑第三方社会化账号登录的问题了。
[3]绑定
Dante Cloud 提供了第三方社会化登录的绑定功能,用于解决“后置”化的账号绑定。原理与第三方社会化登录完全一致。
[三]微信小程序登录
微信小程序常规登录方式,与上面所说的第三方社会化登录略有不同。核心请求的 code
参数由小程序端生成,进行登录时一些必要的加密参数也需要小程序端配合。
微信小程序登录成功之后,用返回的内容与自己系统后端进行交互,用自己系统生成 Token返回给小程序端后,实现登录以及接口的调用。
[1]配置
相关配置参见:微信小程序接入配置
[2]登录
微信小程序的登录方式,还是使用标准的登录接口 /oauth2/token
进行登录,如下图所示

[3]订阅消息
除了微信小程序登录之外,系统还提供了微信小程序订阅消息发送的代码封装,直接使用即可。相关配置参见:微信小程序接入配置