新需求货裹,打通自己公司的項(xiàng)目學(xué)習(xí)平臺和nodebb 論壇 用戶數(shù)據(jù)
一臉懵。精偿。泪酱。。(在懵也得硬上,滑稽臉)我這里只是實(shí)現(xiàn)了一點(diǎn)點(diǎn)墓阀。
思路:
找了一圈毡惜,找到了nodebb的一個(gè)插件,nodebb-plugin-session-sharing斯撮,然后將我的平臺经伙,和nodebb 放在不同的子域下面,如:我又一個(gè)域名www.123.com, 將平臺部署在www.a.123.com,將nodebb部署在玩www.b.123.com, 然后平臺登錄時(shí)將用戶token 寫在123.com的主域上勿锅,這個(gè)nodebb 就能拿到共有的cookie , 插件會自己加載cookie 帕膜,進(jìn)行邏輯處理。
開始步驟
- github 上找到nodebb
https://github.com/NodeBB/NodeBB - 開始找資源看怎么跑(找了一圈溢十,還是官方文檔靠譜)
https://docs.nodebb.org/installing/os/ 選擇對應(yīng)的教程 - window 舉例
https://docs.nodebb.org/installing/os/windows/
先按照步驟下載mongoDB , 運(yùn)行nodebb ,設(shè)置管理員賬號密碼垮刹,安裝nginx . - 全部裝好后,發(fā)現(xiàn)本地不知道怎么模擬兩個(gè)不同的子域名张弛。(哭)
設(shè)置本地host文件
- 找到 C:\WINDOWS\system32\drivers\etc荒典。 目錄下hosts文件。
最下面添加兩句吞鸭,修改本地路徑的指向,域名隨便定
192.168.2.6 windows10.microdone.cn www.123.com
127.0.0.1 localhost www.a.123.com www.b.123.com
設(shè)置nginx 代理
- 找到nginx 的配置文件 C:\nginx\conf 目錄下的nginx.conf寺董。
修改server對象;
端口:4567 是nodebb刻剥,3000是我的平臺前端項(xiàng)目遮咖,8888 是平臺服務(wù)
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.a.123.com;
location / {
root html;
index index.html index.htm;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://www.a.123.com:4567;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.b.123.com;
location / {
root html;
index index.html index.htm;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://www.a.123.com:3000;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.123.com;
location / {
root html;
index index.html index.htm;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://www.123.com:8888;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
- 然后start nginx 啟動后就可以直接用域名訪問啦。
- 用域名訪問后造虏,nodebb 的websock.io 可能會報(bào)錯(cuò)御吞,需要找到配置進(jìn)行修改
自己找下吧,就是改一下config.json的配置
準(zhǔn)備工作做好了漓藕,開始吧
- 先在后臺登錄那寫上登錄成功后魄藕,寫去cookie .
// beego
//token 生成方法拳氢,就需要自行腦補(bǔ)了敬矩,反正有框架的,我不會
passport.Ctx.SetCookie("token",token,9000000, "/","123.com",false,true)羡铲;
// 參數(shù):
1. key "token" nodebb 插件默認(rèn)的key 是這個(gè)嫩与,我懶得改
2. value ,為JWT token 字符串
3. 過期時(shí)間
4. 路徑
5. domain
6. 忘記了 默認(rèn)是false
7. onlyHttp 需要設(shè)置為true寝姿,安全
-
平臺進(jìn)行登錄,成功后划滋,cookie 寫去瀏覽器
image.png
這樣的話 成功一半了
- 登錄nodebb
- 登錄管理員賬號
- 在導(dǎo)航條進(jìn)入控制面板
- 安裝插件
image.png
https://github.com/julianlam/nodebb-plugin-session-sharing 文檔在這
小學(xué)生三連后饵筑,啟動插件,部署重啟 - 運(yùn)行nodebb 最好開啟調(diào)試处坪,要不然各種問題根资,各種懵
nodebb start -d -
設(shè)置 session sharing
image.png - 完成后架专,在重啟,
token 可以按照文檔中的測試地址進(jìn)行測試
https://jwt.io/ - 基本這樣就可以了玄帕。
注意事項(xiàng)
token 中必須要有id,和username 字段部脚,否者不生效