我们在研发视频直播点播服务器EasyDSS的时候,有研发人员提出处理请求的时候,是否可以根据用户的详情来获得用户的角色权限,根据用户的权限来处理相应的请求。
对这个提议,我们团队觉得十分实用,因此将这个功能的设置提上了日程。EasyDSS判断用户是否登陆以及获取当前用户的详细信息如何实现?
以下是判断用户登录的参考代码:
func IsLogined(c *gin.Context) (string, bool) {
if val, ok := c.Get(consts.SesssionUserID); ok && val != nil && val != consts.EmptyString {
s, _ := val.(string)
return s, true
}
session := Default(c)
if session != nil && session.Get(consts.SesssionUserID) != nil {
s := session.Get(consts.SesssionUserID).(string)
return s, true
}
return consts.EmptyString, false
}
获取用户的主键ID:
func GetUserID(c *gin.Context) (s string) {
if val, ok := c.Get(consts.SesssionUserID); ok && val != nil && val != consts.EmptyString {
s, _ = val.(string)
return
}
session := Default(c)
if session != nil && session.Get(consts.SesssionUserID) != nil {
s = session.Get(consts.SesssionUserID).(string)
}
return
}