2021年2月22日 星期一

介接CloudSchool服務平台,JWT 實作驗證機制

 0.安裝特殊字型

$sudo yum install -y fonts-courier-prime

1.shell快速安裝開發環境
檔名:DockerEnvInstall.sh
檔案內容:
#!/bin/bash
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
yum install git
mkdir test
cd test
git clone https://gitlab.cloudschool.com.tw/hami/jwt_test.git
cd ~/test/jwt_test
cp env-sample .env
docker-compose up -d
docker-compose ps
cd ~/test/jwt_test/
docker exec -i jwt_test_php_1 composer install 
cp ~/test/jwt_test/config/local.php.dist ~/test/jwt_test/config/local.php
sed -i 's/root/stern123/2' ~/test/jwt_test/config/local.php
chmod 777 ~/test/jwt_test/data/  -R

重開機後,需要啟動docker,才能執行docker-compose up -d 等指令。
$sudo systemctl start docker

        現在要將data內部的db、mongodb、radis的部分搬家(理由chmod 777 ~/test/jwt_test/data),將mysqldbredismongodb移到mydata
只需要在docker-compose.yml 做修正,
然後下指令 
docker-compose down
docker-compose up -d --build
重新建立mydata即可。

檔案名稱:docker-compose.yml
檔案內容:
version: '3.3'

services:
  php:
    image: hamichen/php-fpm-7.3.14
    volumes:
      - .:/var/app
    ports:
      - "9000:9000"

  nginx:
    build: .docker/nginx/
    depends_on:
      - php
      - mysqldb
    ports:
      - "9011:80"
    links:
      - php
    volumes:
      - .:/var/app

  mysqldb:
    image: mariadb
    env_file:
      - ".env"
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MAX_CONNECTIONS=1024
    volumes:
      - "./mydata/db/mysql:/var/lib/mysql"
      - "./etc/mysql/conf:/etc/mysql/conf.d"
    command: mysqld --sql_mode=""

  myadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "9012:80"
    volumes:
      - .docker/php/upload.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOSTS=mysqldb
      - UPLOAD_LIMIT= 300000000
    depends_on:
      - mysqldb
  redis:
    image: redis
    command: redis-server --requirepass cs-pass
    ports:
      - "6379"
    volumes:
      - ./mydata/radis:/data

  mongodb:
    image: library/mongo:3.4.9
    volumes:
      - ./mydata/mongodb:/data/db
      - ./mydata/backup:/backup
    command: mongod --auth
    privileged: true
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
      MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}

2.手動將資料庫匯入
(1)建立資料庫
     網址輸入http://伺服器IP:9012,打開phpmyadmin的網頁。
     

(2)匯入資料庫sql
這個問題就是要設定cache權限為777,所以下指令
$chmod 777 ~/test/jwt_test/data/ -R


(3)Cloudschool服務平台


        這個平台成立的目的。在過去SFS3的時期,有許多熱血的老師付出自己的時間完成許多模組,比方說運動會檢錄系統。在資安法成立之後,許多服務要向上集中。但不可能把所有過去的模組向上集中,太多也太雜。所以CloudSchool才有後來的API架構,讓大家可以利用API來建立自己的服務。現在更利用這個平台,讓大家介接來完成模組,提供服務。

架構
  
測試流程如下:
2.選擇測試平台->測試國小 13
3.輸入帳號密碼
4.認證完成後,導回服務平台,選擇 協力伙伴測試
5.會進入 http://localhost:9011/login.php?token=xxxx ,即可讀出資料

那上述
2.選擇測試平台->測試國小 13
3.輸入帳號密碼
4.認證完成後,導回服務平台
在架構上為
4.選擇 協力伙伴測試
5.會進入 http://localhost:9011/login.php?token=xxxx ,即可讀出資料
則在架構上為

沒有留言:

張貼留言

Laravel 12 Model 資料庫中的資料表,並提供與資料庫互動的介面

相關系列文章: 1. 在 windows 10 安裝 laravel 12 studentManagement環境與設定 2. laravel 12 route 路由 3. laravel 12 Blade Templates 網頁模版 4. laravel 12 Control...