| ⇢ | A | Douban added | |
| B | ↛ | AbstractProvider removed | |
| A | ↛ | BaiduProvider removed | |
| A | ↛ | DouYinProvider removed | |
| A | ↛ | FacebookProvider removed | |
| A | ↛ | FeiShuProvider removed | |
| A | ↛ | AuthorizeFailedException removed | |
| A | ↛ | QQProvider removed | |
| A | ↛ | HasAttributes removed | |
| A | ↛ | TaobaoProvider removed | |
| A | ↛ | DoubanProvider removed | |
| ⋮ | view more | ||
| ⇢ | A | Douban::getUserByToken() added | |
| ⇢ | A | Douban::mapUserToObject() added | |
| ⇢ | A | Config::jsonSerialize() added | |
| ⇢ | A | Config::__toString() added | |
| ⇢ | A | Douban::getAuthUrl() added | |
| ⇢ | A | Douban::getTokenUrl() added | |
| ⇢ | A | Douban::getTokenFields() added | |
| ⇢ | A | Douban::tokenFromCode() added | |
| A | ↘ | B | Config::get() got worse |
| B | ↛ | AbstractProvider::arrayItem() removed | |
| A | ↛ | WeChatProvider::getUserByToken() removed | |
| A | ↛ | GitHubProvider::getEmailByToken() removed | |
| A | ↛ | LinkedinProvider::mapUserToObject() removed | |
| A | ↛ | QQProvider::getUserByToken() removed | |
| A | ↛ | FeiShuProvider::getUserByToken() removed | |
| A | ↛ | AbstractProvider::makeState() removed | |
| A | ↛ | WeWorkProvider::mapUserToObject() removed | |
| A | ↛ | GitHubProvider::getUserByToken() removed | |
| A | ↛ | FacebookProvider::mapUserToObject() removed | |
| ⋮ | view more | ||