Casdoor 接入与使用指南

一、部署 Casdoor

  1. 环境准备

    • 确保已安装以下工具:
      • Git
      • Docker
      • Node.js
      • Yarn
  2. 部署方式

    • Docker 部署(推荐):
      • 创建一个目录并挂载配置文件:

        mkdir /casdoor
        cd /casdoor
        vim app.conf
        
      • 启动服务:

        docker run -d -p 8000:8000 -v /casdoor:/conf casbin/casdoor-all-in-one
        
      • 访问 http://localhost:8000,使用默认账号 admin 和密码 123 登录。

    • 手动部署:
      • 克隆 Casdoor 仓库:

        git clone https://github.com/casdoor/casdoor
        
      • 配置数据库信息(如 MySQL):

        cd conf
        vim app.conf
        
      • 编译并运行:

        go build
        ./casdoor
        
  3. 验证部署

    • 访问 http://localhost:8000,确保登录页面正常显示。

二、应用接入 Casdoor

  1. 创建应用

    • 登录 Casdoor 管理界面,进入 Applications 页面,创建一个新应用。
    • 填写以下信息:
      • 应用名称
      • 重定向 URL(如 http://localhost:3000/signin)
      • 客户端 ID 和密钥(用于后续集成)。
  2. 后端服务配置

    • 在应用的后端服务中,配置 Casdoor 的接入信息:
      [Casdoor]
      Endpoint = "http://localhost:8000"
      GrantType = "authorization_code"
      ClientId = "your-client-id"
      ClientSecret = "your-client-secret"
      RedirectUri = "http://localhost:3000/signin"
      ```。
      
  3. 前端应用配置

    • 在前端项目中,配置 Casdoor 的 API 地址:
      export const API_URL = 'http://localhost:8080';
      ```。
      
  4. 启动应用

    • 分别启动后端和前端服务:
      make shop_api
      make shop_web
      ```。
      

三、API 使用

  1. 获取授权 URL

    • 使用 Casdoor SDK 获取授权 URL:
      const { CasdoorSDK } = require('casdoor-node-sdk');
      const sdk = new CasdoorSDK({
        endpoint: 'http://localhost:8000',
        clientId: 'your-client-id',
        clientSecret: 'your-client-secret'
      });
      const authUrl = sdk.getAuthUrl();
      ```。
      
  2. 获取访问令牌

    • 用户登录后,通过回调获取访问令牌:
      const code = req.query.code;
      const token = await sdk.getAccessToken(code);
      ```。
      
  3. 获取用户信息

    • 使用访问令牌获取用户信息:
      const user = await sdk.getUser(token.access_token);
      ```。
      

四、注意事项

  1. 数据库配置
    • 确保数据库连接字符串正确,不同数据库类型的配置格式不同。
  2. 证书配置
    • 如果需要使用 SSL,确保在 Casdoor 中配置证书。
  3. 重定向 URL
    • 确保应用的重定向 URL 与 Casdoor 中配置的 URL 一致。
  4. 生产环境
    • 在生产环境中,建议使用正式的安装方式,并绑定域名以确保安全性。

五、参考资料