|  | @@ -4,6 +4,7 @@ import java.util.LinkedHashMap;
 | 
											
												
													
														|  |  import java.util.Map;
 |  |  import java.util.Map;
 | 
											
												
													
														|  |  import java.util.TreeSet;
 |  |  import java.util.TreeSet;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import cn.hutool.core.util.RandomUtil;
 | 
											
												
													
														|  |  import org.apache.commons.lang3.StringUtils;
 |  |  import org.apache.commons.lang3.StringUtils;
 | 
											
												
													
														|  |  import org.springframework.security.oauth2.common.util.OAuth2Utils;
 |  |  import org.springframework.security.oauth2.common.util.OAuth2Utils;
 | 
											
												
													
														|  |  import org.springframework.security.oauth2.provider.OAuth2Authentication;
 |  |  import org.springframework.security.oauth2.provider.OAuth2Authentication;
 | 
											
										
											
												
													
														|  | @@ -25,7 +26,13 @@ public class CustomAuthenticationKeyGenerator extends DefaultAuthenticationKeyGe
 | 
											
												
													
														|  |  		if (!authentication.isClientOnly()) {
 |  |  		if (!authentication.isClientOnly()) {
 | 
											
												
													
														|  |  			values.put(USERNAME, StringUtils.substringAfter(authentication.getName(), ":"));
 |  |  			values.put(USERNAME, StringUtils.substringAfter(authentication.getName(), ":"));
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		values.put(CLIENT_ID, authorizationRequest.getClientId());
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		String clientId = authorizationRequest.getClientId();
 | 
											
												
													
														|  | 
 |  | +		if (StringUtils.isNotEmpty(clientId) && "qr_teacher".equalsIgnoreCase(clientId)) {
 | 
											
												
													
														|  | 
 |  | +			// 酷乐秀老师端扫码登录,允许多端登录,同时生成多个token
 | 
											
												
													
														|  | 
 |  | +			clientId += ":" + RandomUtil.randomNumbers(6);
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +		values.put(CLIENT_ID, clientId);
 | 
											
												
													
														|  |  		if (authorizationRequest.getScope() != null) {
 |  |  		if (authorizationRequest.getScope() != null) {
 | 
											
												
													
														|  |  			values.put(SCOPE, OAuth2Utils.formatParameterList(new TreeSet<String>(authorizationRequest.getScope())));
 |  |  			values.put(SCOPE, OAuth2Utils.formatParameterList(new TreeSet<String>(authorizationRequest.getScope())));
 | 
											
												
													
														|  |  		}
 |  |  		}
 |