备注
部署就是三步走,一步准备工作,一步安装依赖,一步配置运行。
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)更改默认参数。