No puede seleccionar más de 25 temas
Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
|
- using Furion.DataEncryption;
- using SimpleTool;
-
- namespace SafeCampus.Plugin.SignalR
- {
- /// <summary>
- /// 用户ID提供器
- /// </summary>
- public class UserIdProvider : IUserIdProvider
- {
- public string GetUserId(HubConnectionContext connection)
- {
- var token = connection.GetHttpContext().Request.Query["access_token"];//获取token
- var claims = JWTEncryption.ReadJwtToken(token)?.Claims;//解析token
- var userId = claims.FirstOrDefault(u => u.Type == ClaimConst.UserId)?.Value;//获取用户ID
- if (!string.IsNullOrEmpty(userId))//如果不为空
- return $"{userId}_{RandomHelper.CreateLetterAndNumber(5)}";//返回用户ID
- else
- return connection.ConnectionId;
- }
- }
- }
|