|
|
@ -41,15 +41,6 @@ func init() {
|
|
|
|
|
|
|
|
|
|
|
|
func SsoHandler() gin.HandlerFunc {
|
|
|
|
func SsoHandler() gin.HandlerFunc {
|
|
|
|
return func(c *gin.Context) {
|
|
|
|
return func(c *gin.Context) {
|
|
|
|
//植入一个写入未登录用户访问时记录浏览器ID或者机器ID的方法
|
|
|
|
|
|
|
|
_, err := c.Request.Cookie("browser_id")
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
|
|
|
|
//读取到
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//没有设置过
|
|
|
|
|
|
|
|
c.SetCookie("browser_id", CommonUtil.GetUUID(), -1, "/", "", false, true)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//获取访问的完整地址(包括参数)
|
|
|
|
//获取访问的完整地址(包括参数)
|
|
|
|
requestUri := c.Request.RequestURI
|
|
|
|
requestUri := c.Request.RequestURI
|
|
|
|
host := c.Request.Host
|
|
|
|
host := c.Request.Host
|
|
|
@ -109,6 +100,15 @@ func SsoHandler() gin.HandlerFunc {
|
|
|
|
//needLoginFlag为true说明需要跳转到统一认证,否则通过
|
|
|
|
//needLoginFlag为true说明需要跳转到统一认证,否则通过
|
|
|
|
if needLoginFlag {
|
|
|
|
if needLoginFlag {
|
|
|
|
c.Abort()
|
|
|
|
c.Abort()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//植入一个写入未登录用户访问时记录浏览器ID或者机器ID的方法
|
|
|
|
|
|
|
|
_, err := c.Request.Cookie("browser_id")
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
//没有设置过
|
|
|
|
|
|
|
|
c.SetCookie("browser_id", CommonUtil.GetUUID(), -1, "/", "", false, true)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//将访问的全整路径进行base64加码
|
|
|
|
//将访问的全整路径进行base64加码
|
|
|
|
oauthCallback := base64.StdEncoding.EncodeToString([]byte("http://" + host + requestUri))
|
|
|
|
oauthCallback := base64.StdEncoding.EncodeToString([]byte("http://" + host + requestUri))
|
|
|
|
loginUrl := ssoServer + authCodeURI + "?client_id=" + clientId + "&redirect_uri=" + redirectURI + "&response_type=" + responseType + "&oauth_callback=" + oauthCallback + "&device_id=1"
|
|
|
|
loginUrl := ssoServer + authCodeURI + "?client_id=" + clientId + "&redirect_uri=" + redirectURI + "&response_type=" + responseType + "&oauth_callback=" + oauthCallback + "&device_id=1"
|
|
|
|