这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
feijie d30c7e558a feat(docs): 添加OpenApi模块文档 1 year ago
..
LINGYUN/Abp/OpenApi/IdentityServer refactor(open-api): get api key from the request header 1 year ago
FodyWeavers.xml upgrade: upgrade abp framework to 8.1.2 2 years ago
FodyWeavers.xsd upgrade: upgrade abp framework to 8.1.2 2 years ago
LINGYUN.Abp.OpenApi.IdentityServer.csproj refactor(open-api): get api key from the request header 1 year ago
README.EN.md feat(docs): 添加OpenApi模块文档 1 year ago
README.md feat(docs): 添加OpenApi模块文档 1 year ago

README.md

LINGYUN.Abp.OpenApi.IdentityServer

OpenApi IdentityServer 集成模块,提供基于 IdentityServer 的 AppKey/AppSecret 存储实现。

功能特性

  • 基于 IdentityServer 的 AppKey/AppSecret 存储
  • 自动将 AppKey 映射为 IdentityServer 客户端标识
  • 自动将 AppSecret 映射为客户端密钥
  • 支持签名有效期配置
  • 支持客户端名称配置
  • 自动创建和更新客户端信息

安装

dotnet add package LINGYUN.Abp.OpenApi.IdentityServer

模块引用

[DependsOn(typeof(AbpOpenApiIdentityServerModule))]
public class YouProjectModule : AbpModule
{
  // other
}

工作原理

  1. AppKey 映射

    • AppKey 将被映射为 IdentityServer 的 ClientId
    • 通过 IClientRepository 接口进行客户端查询和管理
  2. AppSecret 映射

    • AppSecret 将被映射为客户端密钥(Client Secret)
    • 密钥将以 AppSecret 作为标识存储
  3. 签名有效期

    • SignLifetime 将被存储为客户端的自定义属性
    • 属性名为 "SignLifetime",值为有效期秒数

基本用法

  1. 存储应用凭证

    public class YourService
    {
        private readonly IAppKeyStore _appKeyStore;
    
        public YourService(IAppKeyStore appKeyStore)
        {
            _appKeyStore = appKeyStore;
        }
    
        public async Task CreateAppAsync()
        {
            var descriptor = new AppDescriptor(
                appName: "测试应用",
                appKey: "your-app-key",
                appSecret: "your-app-secret",
                signLifeTime: 300  // 5分钟有效期
            );
    
            await _appKeyStore.StoreAsync(descriptor);
        }
    }
    
  2. 查询应用凭证

    public class YourService
    {
        private readonly IAppKeyStore _appKeyStore;
    
        public YourService(IAppKeyStore appKeyStore)
        {
            _appKeyStore = appKeyStore;
        }
    
        public async Task<AppDescriptor> GetAppAsync(string appKey)
        {
            return await _appKeyStore.FindAsync(appKey);
        }
    }
    

更多信息