# strapi-plugin-sso **Repository Path**: kirk958617/strapi-plugin-sso ## Basic Information - **Project Name**: strapi-plugin-sso - **Description**: strapi-plugin-sso - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-12 - **Last Updated**: 2024-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Strapi plugin sso * github 仓库 [https://github.com/manongguai/strapi-plugin-sso](https://github.com/manongguai/strapi-plugin-sso) ### ! 本项目仅作为个人开发,本人不承担任何法律责任,建议使用官方gold版本 ### 目前仅支持 azure_ad_oauth2 ### 配置示例 /config/plugins ``` config:{ AZUREAD_OAUTH_REDIRECT_URI: env('AZUREAD_OAUTH_REDIRECT_URI',`http://localhost:1337/sso/connect/azure_ad_oauth2`), AZUREAD_TENANT_ID: env('AZUREAD_TENANT_ID','f074dbeb-1cc3-4857-a3ba-17253091f5d3'), AZUREAD_OAUTH_CLIENT_ID: env('AZUREAD_OAUTH_CLIENT_ID','a8d3d937-2bd2-4dd5-812c-c280f8204511'), // AZUREAD_OAUTH_CLIENT_SECRET: '', AZUREAD_SCOPE:env('AZUREAD_SCOPE', ["user:email", "openid", "profile", "offline_access"]), ALLOW_PROVIDERS:['azure_ad_oauth2'] // 默认不开启SSO } ``` ### !!! 使用的前提补丁@strapi/admin 的源码,添加admin.login.actions的注入区,否则会报错 ### !!! 使用的前提补丁@strapi 源码版本指定为4.16.2 | 4.17.0 ,其他版本需要自动找到目标文件打补丁 @strapi/admin补丁方式: - v4.16.2 1. 进入@strapi源码 2. 修改以下文件 * packages/core/admin/admin/src/App.tsx ```tsx + import { ROUTES_EE as ROUTES_CE} from '../../ee/admin/src/constants' 注释掉 // const ROUTES_CE: StrapiRoute[] | null = null; ``` * packages/core/admin/admin/src/pages/Auth/components/Login.tsx ```tsx + import { InjectionZone } from '../../../shared/components/InjectionZone' - {children} + {/* {children} */} + ``` * packages/core/admin/admin/src/shared/components/InjectionZone.tsx ```tsx const INJECTION_ZONES = { admin: { // Temporary injection zone, support for the react-tour plugin in foodadvisor tutorials: { links: [], }, + login:{ + actions: [] + }, contentManager: { editView: { informations: [], 'right-links': [] }, tutorials: { links: InjectionZoneComponent[]; }; + login:{ + actions: InjectionZoneComponent[]; + }; }; }, ... type InjectionZoneArea = | 'admin.tutorials.links' + | 'admin.login.actions' ... - return components.map((component) => ); + return <>{components.map((component) => )}; ``` - v4.17.0 1. 进入@strapi源码 2. 修改以下文件 * packages/core/admin/admin/src/App.tsx ```tsx + import { ROUTES_EE as ROUTES_CE} from '../../ee/admin/src/constants' 注释掉 // const ROUTES_CE: StrapiRoute[] | null = null; ``` * packages/core/admin/admin/src/pages/Auth/components/Login.tsx ```tsx + import { InjectionZone } from '../../../components/InjectionZone' - {children} + {/* {children} */} + ``` * packages/core/admin/admin/src/components/InjectionZone.tsx ```tsx const INJECTION_ZONES = { admin: { // Temporary injection zone, support for the react-tour plugin in foodadvisor tutorials: { links: [], }, + login:{ + actions: [] + }, ... interface InjectionZones { admin: { tutorials: { links: InjectionZoneComponent[]; }; + login: { + actions: InjectionZoneComponent[]; + }; }; }, ... type InjectionZoneArea = | 'admin.tutorials.links' + | 'admin.login.actions' ... - return components.map((component) => ); + return <>{components.map((component) => )}; ``` * 修改代码完成以后,cd 到 packages/core/admin || 根目录 执行 ```cmd npm run build ``` * 将packages/core/admin/dist 替换本项目的 @strapi/admin/dist