C# MIT

Netnr.Login

第三方 OAuth2 授权登录,QQ、微信开放平台(Weixin)、微信公众平台(WeixinMP)服务号、微博(Weibo)、淘宝(Taobao)、支付宝(Alipay)、钉钉(DingTalk)、飞书(Feishu)、华为(Huawei)、小米(Xiaomi)、码云(Gitee)、GitHub、GitLab、微软(Microsoft )、StackOverflow、谷歌(Google)、Facebook、ORCID

N

netnr

Dernière activité 16 sept. 2026
netnr/Netnr.Login

173

étoiles

47

forks

0

issues ouvertes

alipaydingtalkfeishugiteegithubgitlabgooglemicrosoftoauth2orcidqqstackoverflowtaobaoweiboweixin

Ce README est souvent en anglais.

Netnr.Login

第三方 OAuth2 授权登录,QQ、微信开放平台(Weixin)、微信公众平台(WeixinMP)服务号、微博(Weibo)、淘宝(Taobao)、支付宝(Alipay)、钉钉(DingTalk)、飞书(Feishu)、华为(Huawei)、小米(Xiaomi)、码云(Gitee)、GitHub、GitLab、微软(Microsoft )、StackOverflow、谷歌(Google)、Facebook、ORCID

安装 (NuGet)

Install-Package Netnr.Login

NuGet | Netnr.Login

支持第三方登录

三方参考文档应用申请(已登录)
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请
参考文档 应用申请

变更

v5 版本全面重写,不兼容以前,调用方法更简单简洁
移除 Newtonsoft.Json 组件,改为 System.Text.Json
微软含新旧模式(注意新旧版本标识不相同)
钉钉含新旧模式(新:企业内部开发 H5微应用;旧:移动应用接入 扫码登录)

2026-03-12

删除 AtomGit

2025-05-24

新增 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.Sample/Controllers/LoginController.cs

极简调用,详情参考 Netnr.Sample/Controllers/AccountController.cs

// 初始化配置,推荐使用 LoginTo.InitConfig 方法读取配置

QQ.AppId = "";
QQ.AppKey = "";
QQ.Redirect_Uri = "https://localhost/account/authcallback/qq";
/// <summary>
/// 登录、绑定
/// </summary>
/// <param name="id">哪家</param>
/// <returns></returns>
[HttpGet]
public IActionResult Auth([FromRoute] LoginWhich? id)
{
    if (id.HasValue)
    {
        //根据 state 字段加前缀 login 或 bind 来区分
        DocModel authResult = LoginTo.EntryOfStep<object, object>(id.Value, LoginStep.Authorize, stateCall: (state) => $"login_{state}");
        if (!string.IsNullOrEmpty(authResult.Raw))
        {
            return Redirect(authResult.Raw);
        }
    }

    return BadRequest();
}
/// <summary>
/// 回调
/// </summary>
/// <param name="id">哪家</param>
/// <param name="authResult">接收授权码</param>
/// <returns></returns>
[HttpGet]
public IActionResult AuthCallback([FromRoute] LoginWhich id, AuthorizeResult authResult)
{
    //极简拿到最终用户信息,参考详情可得到步骤信息
    var publicUser = LoginTo.Entry(id, authResult);

    var result = publicUser.ToJson(true);
    Console.WriteLine(result);

    return Ok(result);
}

注意

默认构建的授权调整链接是基于 PC,而有些是区分移动端、扫码等,需要根据客户端来源构建对应的授权跳转链接。

Projets similaires

🏆Gitee 最有价值开源项目 🚀 小而全而美的第三方登录开源组件。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack和 Line 等第三方平台的授权登录。 Login, so easy!

Javagoogleloginjustauthoauth2
Jjustauth
17,5 k étoiles2,9 k

PHP 第三方登录授权 SDK,集成了QQ、微信、微博、Github等常用接口。支持 php-fpm 和 Swoole,所有框架通用。QQ群:17916227

PHPcoroutineoauth-clientoauth2
YYurunsoft
435 étoiles113

Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.

PHPalipaybaidudingtalk
Oovertrue
1,4 k étoiles244