Note
部署就是三步走,一步准备工作,一步安装依赖,一步配置运行。
1.1 CentOS
yum install -y gcc gcc-c++ python-devel libffi-devel openssl-devel mysql-devel
1.2 Ubuntu
apt-get install build-essential libmysqld-dev libssl-dev python-dev libffi-dev
2.1 开发版本:
$ git clone https://github.com/staugur/passport && cd passport2.2 稳定版本:
$ wget -c -O passport-1.0.3.tar.gz https://codeload.github.com/staugur/passport/tar.gz/v1.0.3 $ tar zxf passport-1.0.3.tar.gz $ cd passport-1.0.3/
passport/ ├── demo #这是客户端演示程序目录,注意配置文件config.py │ ├── config.py │ ├── libs │ ├── main.py │ ├── online_gunicorn.sh │ ├── plugins │ ├── utils │ ├── version.py │ └── views ├── LICENSE #LICENSE文件 ├── misc #其他杂项目录,包含sql文件、流程图 │ ├── passport.sql │ └── sso.png ├── README.md #概述文件 ├── requirements.txt #python所需模块文件 └── src #源代码目录 ├── cli.py #命令行文件 ├── config.py #配置文件 ├── hlm ├── libs ├── main.py #程序入口文件 ├── online_gunicorn.sh ├── plugins ├── static ├── templates ├── test ├── utils ├── version.py └── views
4.1 开发所用python版本为2.7.x,其他版本未测试!
4.2 使用pip安装模块,执行
pip install -r requirements.txt
即可。
1.1 使用版本5.5、5.6+均可。
1.2 CentOS系列可以使用这个脚本,社区5.6版,执行命令
curl -fsSL https://static.saintic.com/download/scripts/yum_install_mysql56.sh | sh -
直接安装!1.3 启动mysql服务,导入sql
2.1 使用版本目前看没要求。
2.2 CentOS系列执行命令
yum install -y redis
应可安装。2.3 启动redis服务
1.1 GLOBAL段,主要是程序监听的IP和端口。
1.2
MYSQL段,必填,没有默认值,格式是mysql://host:port:user:password:database[?charset=utf8&timezone=+8:00]
,[]可省略保持默认
1.3
REDIS段,必填,没有默认值,格式是redis://[:password]@host:port/db
1.4 VAPTCHA段,手势验证码,必填
1.5 UPYUN段,又拍云存储头像,可选,其中enable值设定是否启用,不启用则保存到本地
1.6 EMAIL段,发送邮箱验证码,根据实际可选(EMAIL、PHONE建议至少一个,否则无法使用注册、忘记密码等功能)
1.7 PHONE段,发送手机验证码,根据实际可选
1.8 SYSTEM和PLUGINS段配置,前者是程序本身相关,有一些需要调整;后者是插件方面配置。
1.9 请看表格(表格内未提及的可以直接参考config.py中的注释):
配置段(*必填) | 键名(即环境变量)及默认值 | 示例 | 备注 |
---|---|---|---|
*MYSQL | passport_mysql_url | mysql://127.0.0.1:3306:root:123546:test | mysql连接串,格式:mysql://host:port:user:password:database |
*REDIS | passport_redis_url |
|
redis连接串,格式:redis://[:password]@host:port/db |
*VAPTCHA |
|
mysql://127.0.0.1:3306:root:123546:test | 官网:https://www.vaptcha.com,自行注册创建验证单元。 |
UPYUN |
|
|
|
|
|
|
|
PHONE |
|
|
|
SYSTEM |
|
Sign部分不一定用得着,这个是定义API路由接口时自己参考是否使用 | |
PLUGINS |
|
|
更多参考配置文件更改 |
以设置系统环境变量为例,我是Linux环境,修改家目录的.bash_profile
或者在程序src目录下增加online_pre.sh
文件(此文件,使用online_gunicorn.sh启动程序时会预先加载),增加以下内容(记得source下让环境变量生效):
# GLOABL export REDIS_PRE="redis://@127.0.0.1:6379" export MYSQL_PRE="mysql://localhost:3306:root:123456" export PASSPORT_URL="http://passport.demo.com" export HMAC_SHA256_KEY="xxxxxxxxxxxxxxxxxxxxxxx" export AES_CBC_KEY="要求16个字符" export JWT_SECRET_KEY="xxxxxxx" export SIGN_ACCESSKEYID="xxxxxxx" export SIGN_ACCESSKEYSECRET="xxxxxxx" # Passport export passport_mysql_url="${MYSQL_PRE}:passport" export passport_redis_url="${REDIS_PRE}/8" ## 手机验证码 export passport_phone_keyid="key" export passport_phone_keysecret="secret" export passport_phone_sign_name="name" export passport_phone_template_code="SMS_code" ## 邮箱验证码 export passport_email_useraddr="demo@saintic.com" export passport_email_userpass="123456" export passport_email_smtpssl="true" export passport_email_smtpserver="smtp.exmail.qq.com" export passport_email_smtpport="465" ## 手势验证码 export passport_vaptcha_vid="vid" export passport_vaptcha_key="key" ## 微博登录 export passport_weibo_appid="appid" export passport_weibo_appkey="appkey" export passport_weibo_redirecturi="${PASSPORT_URL}/oauth2/weibo/authorized" ## QQ登录 export passport_qq_appid="appid" export passport_qq_appkey="appkey" export passport_qq_redirecturi="${PASSPORT_URL}/oauth2/qq/authorized" ## Github登录 export passport_github_appid="appid" export passport_github_appkey="appkey" export passport_github_redirecturi="${PASSPORT_URL}/oauth2/github/authorized" ## Coding登录 export passport_coding_appid="appid" export passport_coding_appkey="appkey" export passport_coding_redirecturi="${PASSPORT_URL}/oauth2/coding/authorized" ## 码云登录 export passport_gitee_appid="appid" export passport_gitee_appkey="appkey" export passport_gitee_redirecturi="${PASSPORT_URL}/oauth2/gitee/authorized" ## 又拍云 export passport_upyun_bucket="test" export passport_upyun_username="test" export passport_upyun_password="123456" ## SYSTEM段-SSO主要配置(其他客户端要保持一致) export passport_hmac_sha256_key="${HMAC_SHA256_KEY}" export passport_aes_cbc_key="${AES_CBC_KEY}" export passport_jwt_secret_key="${JWT_SECRET_KEY}" ## SYSTEM段-API签名配置(目前没用) export passport_sign_accesskeyid="${SIGN_ACCESSKEYID}" export passport_sign_accesskeysecret="${SIGN_ACCESSKEYSECRET}" ## SYSTEM段-其他配置 export passport_personalizeddomainnameprefix="https://blog.saintic.com/user/" export passport_system_email="staugur@saintic.com" export passport_status_url="https://status.satic.io"
3.1 执行命令python main.py
,输出下面内容基本是没问题了:
* Running on http://0.0.0.0:10030/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 193-386-021
3.2 当然报错的话,那就再研究研究,Google、Baidu,QQ群讨论都行。
配置文件中GLOBAL段Host、Port分别指定了监听地址和端口,默认监听0.0.0.0:10030,你可以通过修改配置文件或环境变量(passport_host、passport_port)更改默认参数。