身份认证相关配置
身份认证有几个重要参数建议了解:
- Nebula_JwtToken_AlgorithmName
- 含意:JWT签名算法名称
- 默认值:HS512
- 取值范围:HS256/HS512/RS256/RS512/ES256/ES512
- Nebula_Authentication_SecretKey
- 含意:当使用 HS256/HS512 算法时的密钥
- 默认值:框架内定
- Nebula_Authentication_CookieName
- 含意:JWT-TOKEN采用 Cookie 方式发送到服务时的键名
- 默认值:xtoken
- Nebula_Authentication_HeaderName
- 含意:JWT-TOKEN采用 请求头 方式发送到服务时的键名
- 默认值:x-token
使用非对称签名算法
框架支持4种非对称签名算法:RS256/RS512/ES256/ES512
如果需要使用这些算法,请先创建一个X509证书,
为了简单,建议创建一个 pfx 的自签名证书。
本文假设你已经创建好了一个pfx证书,下面仅介绍如何配置。
你需要再创建一个配置文件(文本格式), 假设命名为:ClownFishTest.conf
然后把它放在配置服务中,或者程序的启动目录中。
它的内容格式为:
base64(证书加载密码)\nbase64(证书文件二进制内容)
例如:
然后再指定一个配置参数:
ClownFish_Authentication_X509Conf_FileName=ClownFishTest.conf
直接使用ClownFish框架
如果不使用Nebula框架,而是直接使用ClownFish框架,只需要将前面介绍的参数名称前缀从 Nebula 修改为 ClownFish 即可。
例如:
- ClownFish_JwtToken_AlgorithmName
- ClownFish_Authentication_SecretKey
- ClownFish_Authentication_CookieName
- ClownFish_Authentication_HeaderName
登录凭证自动续期
当用户登录时,可调用以下2个方法(其中1个)得到一个登录凭证(TOKEN)
- AuthenticationManager.Login(IUserInfo userInfo, int expirationSeconds)
- AuthenticationManager.GetLoginToken(IUserInfo userInfo, int expirationSeconds)
由于调用方法时指定了过期时间,因此得到的 登录凭证(TOKEN) 会在一定时间后过期。
为了提升用户体验,避免让用户频繁登录,框架 默认 会对登录凭证做续期处理。
如果 不希望 框架做自动续期,可以指定以下参数:
ClownFish_JwtToken_ExpirationRenewal=0