# easy-login
**Repository Path**: jq_di/easy-login
## Basic Information
- **Project Name**: easy-login
- **Description**: 一个封装了登录的框架,支持密码、本机号码一键登录、微信授权登录(小程序、APP、公众号)、支付宝授权登录(小程序)等
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 14
- **Forks**: 7
- **Created**: 2024-06-16
- **Last Updated**: 2026-03-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 登录设计, SpringBoot
## README
一个封装了登录的框架,支持密码、本机号码一键登录、微信授权登录(小程序、APP、公众号)、支付宝授权登录(小程序)等
### 登录方式支持
| 登录方式 | 已实现 |
| -------------------------- |--------|
| 用户名+密码 | √ |
| 手机号+密码 | √ |
| 邮箱+密码 | √ |
| 用户名+密码+验证码 | √ |
| 手机号+密码+验证码 | √ |
| 邮箱+密码+验证码 | √ |
| 本机号码一键登录 | √ |
| 手机号+验证码 | √ |
| 邮箱+验证码 | √ |
| 微信授权登录(APP) | √ |
| 微信授权登录(小程序) | √ |
| 微信授权登录(公众号) | √ |
| 支付宝授权登录(小程序) | √ |
| QQ授权登录 | √ |
| 新浪微博授权登录 | ✘ |
| 国外(如google)授权登录 | ✘ |
### 模块说明
```lua
easy-login
├── easy-login-core -- 核心代码
└── ali -- 支付宝授权登录
└── email -- 邮箱登录
└── mobile -- 手机号登录
└── password -- 密码登录
└── wx -- 微信授权登录
└── repository -- 持久化信息接口
└── easy-login-spring-boot-starter -- 整合springboot代码
└── easy-login-springboot-demo -- 在springboot中使用easy-login的demo代码
```
### SpringBoot自动装配条件
| 登录方式 | 实现类 | 装配条件 |
| ------------------------- |----------------------------|------------------------------------------|
| 用户名+密码 | UsernamePasswordClient | 实现PasswordRepository |
| 手机号+密码 | MobilePasswordClient | 实现PasswordRepository |
| 邮箱+密码 | EmailPasswordClient | 实现PasswordRepository |
| 用户名+密码+验证码 | UsernamePasswordCodeClient | 实现PasswordRepository和VerifycodeRepository |
| 手机号+密码+验证码 | MobilePasswordCodeClient | 实现PasswordRepository和VerifycodeRepository |
| 邮箱+密码+验证码 | EmailPasswordCodeClient | 实现PasswordRepository和VerifycodeRepository |
| 本机号码一键登录 | LocalMobileClient | 配置easylogin.localMobile.accessKeyId |
| 手机号+验证码 | MobileCodeClient | 实现VerifycodeRepository |
| 手机号+验证码+绑定授权 | MobileCodeBindClient | 实现VerifycodeRepository |
| 邮箱+验证码 | EmailCodeClient | 实现VerifycodeRepository |
| 邮箱+验证码+绑定授权 | EmailCodeBindClient | 实现VerifycodeRepository |
| 微信授权登录(APP) | WeixinAppClient | 配置easylogin.weixinApp.appid |
| 微信授权登录(小程序) | WeixinMiniappClient | 配置easylogin.weixinMiniapp.appid |
| 微信授权登录(小程序) | WeixinMiniappMobileClient | 配置easylogin.weixinMiniappMobile.appid |
| 微信授权登录(公众号) | WeixinMpClient | 配置easylogin.weixinMp.appid |
| 支付宝授权登录(小程序) | AlipayMiniappClient | 配置easylogin.alipayMiniapp.appid |
| 支付宝授权登录(小程序) | AlipayMiniappMobileClient | 配置easylogin.alipayMiniappMobile.appid |
| QQ授权登录 | QQClient | 配置easylogin.qq.appid |
### 使用说明
#### 1:easy-login已发布至maven中央仓库,可以直接引入到项目中,maven依赖如下:
```
io.github.jqdi
easy-login-spring-boot-starter
{latest.version}
```
{latest.version}可通过[中央仓库](https://central.sonatype.com/artifact/io.github.jqdi/easy-login-spring-boot-starter)查询
#### 2:如使用微信授权登录(小程序),需引入微信sdk,其他可参考easy-login-core的pom配置
```
com.github.binarywang
weixin-java-miniapp
4.6.0
```
#### 3:springboot yml 配置(如使用微信授权登录(小程序)),其他可参考easy-login-springboot-demo的pom配置
```
easylogin:
weixinMiniappMobile: # 微信小程序登录方式二
appid: 1111 #微信小程序的appid
secret: 1111 #微信小程序的Secret
```
#### 4:在代码中使用
```
@Autowired
@Qualifier(LoginType.WEIXIN_MINIAPP_MOBILE)
private LoginClient weixinMiniappMobileClient;
public String loginByWeixinMiniappMobile(String wxcode) {
String userId = weixinMiniappMobileClient.login(LoginParams.builder().weixinMiniappMobile(wxcode).build());
String token = "generate token with userId:" + userId;
return token;
}
```
### 开源共建
#### 开源协议
easy-login 开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICENSE-2.0.html)。
允许商业使用,但务必保留类作者、Copyright 信息。
#### 其他说明
1. 联系作者 897665787@qq.com