NJUlogin


NameNJUlogin JSON
Version 3.3 PyPI version JSON
download
home_pagehttps://github.com/Do1e/NJUlogin
SummaryThe Nanjing University login module, which can be used to login to the various campus web sites
upload_time2024-11-19 13:58:26
maintainerNone
docs_urlNone
authorDo1e
requires_python<4.0,>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # NJUlogin

* 南京大学统一身份认证登录模块,可用于登录校园各种网站,[Github link](https://github.com/Do1e/NJUlogin),[PyPI link](https://pypi.org/project/NJUlogin/)。

## 安装
```bash
pip install NJUlogin -i https://mirror.nju.edu.cn/pypi/web/simple
```

## 使用
* 包含三种登录方法,**扫码登录**、**账号密码登录**、**加载cookies登录**,使用方法见[demos](demos/)文件夹

</br>

* **扫码登录**:构造`QRlogin`对象即可调用`login`方法进行登录。会在终端打印统一身份验证的二维码,使用手机扫码登录即可。(未测试字体,若出问题请尝试更换终端字体,如`MesloLGS NF`、`Fira Code`,也会在当前目录保存图片文件作为备选方案)
* **账号密码登录**:使用账号密码作为参数构造`pwdLogin`对象即可调用`login`方法进行登录。
* **加载cookies登录**:构造`baseLogin`对象即可调用`load`方法加载cookies,cookies需要通过上述两种登录方式后使用`export`方法导出为文件。`load`和`export`方法可以设置保存文件的密码防止泄露。
* `login`方法需要传入登录的目的网址,比如`http://p.nju.edu.cn/cas/&renew=true`表示登录到校园网,返回的网页会保存在`self.response`中。目的网址也可以留空。
* 目的网址获取方法(举一反三即可):打开浏览器输入`p.nju.edu.cn`,会发现自动跳转到`https://authserver.nju.edu.cn/authserver/login?service=http%3A%2F%2Fp.nju.edu.cn%2Fcas%2F&renew=true`,即为`service=`后面的内容,这里经过了编码,不解码直接作为目的地址传入也可以。
* 返回值`session`记录了登录状态,之后即可使用`requests`中的方法进行进一步的操作,也可以使用构造出的对象调用`get`或`post`方法。(具体能有什么操作就看各位的创意了,也可以查看[我的示例](https://github.com/Do1e/p-dot-nju-login))


方法/属性列表:
  * `login(self, dest: str = None)`:登录
  * `get(self, url: str, **kwargs) -> requests.Response`:重载了`requests.get`方法
  * `post(self, url: str, data: dict, **kwargs) -> requests.Response`:重载了`requests.post`方法
  * `logout(self)`:退出登录
  * `logout_all(self)`:退出所有设备的登录
  * `available`:判断是否登录成功
  * `export(self, filename: str, password: str = None)`:导出cookies
  * `load(self, filename: str, password: str = None)`:加载cookies

## 补充
* 这个项目很难进行完整的测试,毕竟难以预测所有的网络情况,而且网站的登录方式也会有更新,因此欢迎大家提出issue,我会尽力解决(只要我还在南大)。

## 致谢
* 验证码识别代码来自[sml2h3/ddddocr](https://github.com/sml2h3/ddddocr)


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Do1e/NJUlogin",
    "name": "NJUlogin",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Do1e",
    "author_email": "dpj.email@qq.com",
    "download_url": "https://files.pythonhosted.org/packages/36/22/e1087cf39364fd76bb45f562f4b6ddd5e8300deab0c7e37ae3a875e7dcd5/njulogin-3.3.tar.gz",
    "platform": null,
    "description": "# NJUlogin\n\n* \u5357\u4eac\u5927\u5b66\u7edf\u4e00\u8eab\u4efd\u8ba4\u8bc1\u767b\u5f55\u6a21\u5757\uff0c\u53ef\u7528\u4e8e\u767b\u5f55\u6821\u56ed\u5404\u79cd\u7f51\u7ad9\uff0c[Github link](https://github.com/Do1e/NJUlogin)\uff0c[PyPI link](https://pypi.org/project/NJUlogin/)\u3002\n\n## \u5b89\u88c5\n```bash\npip install NJUlogin -i https://mirror.nju.edu.cn/pypi/web/simple\n```\n\n## \u4f7f\u7528\n* \u5305\u542b\u4e09\u79cd\u767b\u5f55\u65b9\u6cd5\uff0c**\u626b\u7801\u767b\u5f55**\u3001**\u8d26\u53f7\u5bc6\u7801\u767b\u5f55**\u3001**\u52a0\u8f7dcookies\u767b\u5f55**\uff0c\u4f7f\u7528\u65b9\u6cd5\u89c1[demos](demos/)\u6587\u4ef6\u5939\n\n</br>\n\n* **\u626b\u7801\u767b\u5f55**\uff1a\u6784\u9020`QRlogin`\u5bf9\u8c61\u5373\u53ef\u8c03\u7528`login`\u65b9\u6cd5\u8fdb\u884c\u767b\u5f55\u3002\u4f1a\u5728\u7ec8\u7aef\u6253\u5370\u7edf\u4e00\u8eab\u4efd\u9a8c\u8bc1\u7684\u4e8c\u7ef4\u7801\uff0c\u4f7f\u7528\u624b\u673a\u626b\u7801\u767b\u5f55\u5373\u53ef\u3002(\u672a\u6d4b\u8bd5\u5b57\u4f53\uff0c\u82e5\u51fa\u95ee\u9898\u8bf7\u5c1d\u8bd5\u66f4\u6362\u7ec8\u7aef\u5b57\u4f53\uff0c\u5982`MesloLGS NF`\u3001`Fira Code`\uff0c\u4e5f\u4f1a\u5728\u5f53\u524d\u76ee\u5f55\u4fdd\u5b58\u56fe\u7247\u6587\u4ef6\u4f5c\u4e3a\u5907\u9009\u65b9\u6848)\n* **\u8d26\u53f7\u5bc6\u7801\u767b\u5f55**\uff1a\u4f7f\u7528\u8d26\u53f7\u5bc6\u7801\u4f5c\u4e3a\u53c2\u6570\u6784\u9020`pwdLogin`\u5bf9\u8c61\u5373\u53ef\u8c03\u7528`login`\u65b9\u6cd5\u8fdb\u884c\u767b\u5f55\u3002\n* **\u52a0\u8f7dcookies\u767b\u5f55**\uff1a\u6784\u9020`baseLogin`\u5bf9\u8c61\u5373\u53ef\u8c03\u7528`load`\u65b9\u6cd5\u52a0\u8f7dcookies\uff0ccookies\u9700\u8981\u901a\u8fc7\u4e0a\u8ff0\u4e24\u79cd\u767b\u5f55\u65b9\u5f0f\u540e\u4f7f\u7528`export`\u65b9\u6cd5\u5bfc\u51fa\u4e3a\u6587\u4ef6\u3002`load`\u548c`export`\u65b9\u6cd5\u53ef\u4ee5\u8bbe\u7f6e\u4fdd\u5b58\u6587\u4ef6\u7684\u5bc6\u7801\u9632\u6b62\u6cc4\u9732\u3002\n* `login`\u65b9\u6cd5\u9700\u8981\u4f20\u5165\u767b\u5f55\u7684\u76ee\u7684\u7f51\u5740\uff0c\u6bd4\u5982`http://p.nju.edu.cn/cas/&renew=true`\u8868\u793a\u767b\u5f55\u5230\u6821\u56ed\u7f51\uff0c\u8fd4\u56de\u7684\u7f51\u9875\u4f1a\u4fdd\u5b58\u5728`self.response`\u4e2d\u3002\u76ee\u7684\u7f51\u5740\u4e5f\u53ef\u4ee5\u7559\u7a7a\u3002\n* \u76ee\u7684\u7f51\u5740\u83b7\u53d6\u65b9\u6cd5\uff08\u4e3e\u4e00\u53cd\u4e09\u5373\u53ef\uff09\uff1a\u6253\u5f00\u6d4f\u89c8\u5668\u8f93\u5165`p.nju.edu.cn`\uff0c\u4f1a\u53d1\u73b0\u81ea\u52a8\u8df3\u8f6c\u5230`https://authserver.nju.edu.cn/authserver/login?service=http%3A%2F%2Fp.nju.edu.cn%2Fcas%2F&renew=true`\uff0c\u5373\u4e3a`service=`\u540e\u9762\u7684\u5185\u5bb9\uff0c\u8fd9\u91cc\u7ecf\u8fc7\u4e86\u7f16\u7801\uff0c\u4e0d\u89e3\u7801\u76f4\u63a5\u4f5c\u4e3a\u76ee\u7684\u5730\u5740\u4f20\u5165\u4e5f\u53ef\u4ee5\u3002\n* \u8fd4\u56de\u503c`session`\u8bb0\u5f55\u4e86\u767b\u5f55\u72b6\u6001\uff0c\u4e4b\u540e\u5373\u53ef\u4f7f\u7528`requests`\u4e2d\u7684\u65b9\u6cd5\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u64cd\u4f5c\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u6784\u9020\u51fa\u7684\u5bf9\u8c61\u8c03\u7528`get`\u6216`post`\u65b9\u6cd5\u3002\uff08\u5177\u4f53\u80fd\u6709\u4ec0\u4e48\u64cd\u4f5c\u5c31\u770b\u5404\u4f4d\u7684\u521b\u610f\u4e86\uff0c\u4e5f\u53ef\u4ee5\u67e5\u770b[\u6211\u7684\u793a\u4f8b](https://github.com/Do1e/p-dot-nju-login)\uff09\n\n\n\u65b9\u6cd5/\u5c5e\u6027\u5217\u8868\uff1a\n  * `login(self, dest: str = None)`\uff1a\u767b\u5f55\n  * `get(self, url: str, **kwargs) -> requests.Response`\uff1a\u91cd\u8f7d\u4e86`requests.get`\u65b9\u6cd5\n  * `post(self, url: str, data: dict, **kwargs) -> requests.Response`\uff1a\u91cd\u8f7d\u4e86`requests.post`\u65b9\u6cd5\n  * `logout(self)`\uff1a\u9000\u51fa\u767b\u5f55\n  * `logout_all(self)`\uff1a\u9000\u51fa\u6240\u6709\u8bbe\u5907\u7684\u767b\u5f55\n  * `available`\uff1a\u5224\u65ad\u662f\u5426\u767b\u5f55\u6210\u529f\n  * `export(self, filename: str, password: str = None)`\uff1a\u5bfc\u51facookies\n  * `load(self, filename: str, password: str = None)`\uff1a\u52a0\u8f7dcookies\n\n## \u8865\u5145\n* \u8fd9\u4e2a\u9879\u76ee\u5f88\u96be\u8fdb\u884c\u5b8c\u6574\u7684\u6d4b\u8bd5\uff0c\u6bd5\u7adf\u96be\u4ee5\u9884\u6d4b\u6240\u6709\u7684\u7f51\u7edc\u60c5\u51b5\uff0c\u800c\u4e14\u7f51\u7ad9\u7684\u767b\u5f55\u65b9\u5f0f\u4e5f\u4f1a\u6709\u66f4\u65b0\uff0c\u56e0\u6b64\u6b22\u8fce\u5927\u5bb6\u63d0\u51faissue\uff0c\u6211\u4f1a\u5c3d\u529b\u89e3\u51b3\uff08\u53ea\u8981\u6211\u8fd8\u5728\u5357\u5927\uff09\u3002\n\n## \u81f4\u8c22\n* \u9a8c\u8bc1\u7801\u8bc6\u522b\u4ee3\u7801\u6765\u81ea[sml2h3/ddddocr](https://github.com/sml2h3/ddddocr)\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "The Nanjing University login module, which can be used to login to the various campus web sites",
    "version": "3.3",
    "project_urls": {
        "Homepage": "https://github.com/Do1e/NJUlogin",
        "Repository": "https://github.com/Do1e/NJUlogin"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1cfdfdf43ab4a0aac651e77c2d0cd523d151c6a705bf1e67a2f0a3a0c9d2fdd5",
                "md5": "2938446ff98530658beb796e2d50e2ad",
                "sha256": "b4deb9a56ae82186f0139c42651882e197ced8e2b2d783e526a2995cf54d8793"
            },
            "downloads": -1,
            "filename": "njulogin-3.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2938446ff98530658beb796e2d50e2ad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 6862783,
            "upload_time": "2024-11-19T13:58:22",
            "upload_time_iso_8601": "2024-11-19T13:58:22.610730Z",
            "url": "https://files.pythonhosted.org/packages/1c/fd/fdf43ab4a0aac651e77c2d0cd523d151c6a705bf1e67a2f0a3a0c9d2fdd5/njulogin-3.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3622e1087cf39364fd76bb45f562f4b6ddd5e8300deab0c7e37ae3a875e7dcd5",
                "md5": "8434211f76c9d30fcd6ea74ecc1450ed",
                "sha256": "521e549eabb15e27a23fd8255f9769673aec30b635f4977bf759ba96e412f280"
            },
            "downloads": -1,
            "filename": "njulogin-3.3.tar.gz",
            "has_sig": false,
            "md5_digest": "8434211f76c9d30fcd6ea74ecc1450ed",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 6810370,
            "upload_time": "2024-11-19T13:58:26",
            "upload_time_iso_8601": "2024-11-19T13:58:26.409115Z",
            "url": "https://files.pythonhosted.org/packages/36/22/e1087cf39364fd76bb45f562f4b6ddd5e8300deab0c7e37ae3a875e7dcd5/njulogin-3.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-19 13:58:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Do1e",
    "github_project": "NJUlogin",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "njulogin"
}
        
Elapsed time: 0.36228s