# Netnr.Login
**Repository Path**: netnr/Netnr.Login
## Basic Information
- **Project Name**: Netnr.Login
- **Description**: 第三方 OAuth2 授权登录
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://netnr.com/account/login
- **GVP Project**: No
## Statistics
- **Stars**: 367
- **Forks**: 112
- **Created**: 2018-01-10
- **Last Updated**: 2025-12-16
## Categories & Tags
**Categories**: oauth-dev
**Tags**: OAuth2, login
## README
# Netnr.Login
第三方 OAuth2 授权登录,QQ、微信开放平台(Weixin)、微信公众平台(WeixinMP)、微博(Weibo)、淘宝(Taobao)、支付宝(Alipay)、钉钉(DingTalk)、飞书(Feishu)、华为(Huawei)、小米(Xiaomi)、AtomGit、码云(Gitee)、GitHub、GitLab、微软(Microsoft )、StackOverflow、谷歌(Google)、Facebook、ORCID
### 安装 (NuGet)
```
Install-Package Netnr.Login
```
[NuGet | Netnr.Login](https://www.nuget.org/packages/Netnr.Login)
### 支持第三方登录
### 变更
v5 版本全面重写,不兼容以前,调用方法更简单简洁
移除 Newtonsoft.Json 组件,改为 System.Text.Json
微软含新旧模式(注意新旧版本标识不相同)
钉钉含新旧模式(新:企业内部开发 H5微应用;旧:移动应用接入 扫码登录)
#### next
新增 Facebook
更新 支付宝签名 RSACryptoServiceProvider 改为 RSA ,消除 CA1416 提醒
#### 2024-10-18
新增 华为 小米
修复 微博获取唯一标识的错误,v5旧版本微博都有问题 `严重缺陷`
调整 PublicUserResult 类属性字段为 OpenId(有值,应用唯一)、UnionId(可能有值,跨应用唯一)
新增 PublicUserResult 类方法 `GetId() => UnionId ?? OpenId;`
#### 2024-10-17
新增 AtomGit、ORCID、GitLab
删除 字段 PublicUserResult.`Gender`
修改 字段 PublicUserResult.`Intro` 为 `Bio`
### 使用
v4 旧版本使用示例 `Netnr.Demo/Controllers/LoginController.cs`
极简调用,详情参考 `Netnr.Demo/Controllers/AccountController.cs`
```csharp
// 初始化配置,推荐使用 LoginTo.InitConfig 方法读取配置
QQ.AppId = "";
QQ.AppKey = "";
QQ.Redirect_Uri = "https://localhost/account/authcallback/qq";
```
```csharp
///
/// 登录、绑定
///
/// 哪家
///
[HttpGet]
public IActionResult Auth([FromRoute] LoginWhich? id)
{
if (id.HasValue)
{
//根据 state 字段加前缀 login 或 bind 来区分
DocModel authResult = LoginTo.EntryOfStep