@@ -106,19 +106,45 @@ public async Task<bool> UpdatePassword(string password, string verificationCode)
106106 return true ;
107107 }
108108
109- public async Task < Token ? > GetToken ( string authorization )
109+ public async Task < Token > GetAffiliateToken ( string authorization )
110+ {
111+ var base64 = Encoding . UTF8 . GetString ( Convert . FromBase64String ( authorization ) ) ;
112+ var ( id , password ) = base64 . SplitAsTuple ( ":" ) ;
113+ var db = _services . GetRequiredService < IBotSharpRepository > ( ) ;
114+ var record = db . GetUserByPhone ( id ) ;
115+
116+ var isCanLoginAffiliateRoleType = record == null && record . Type != UserType . Client ;
117+ if ( isCanLoginAffiliateRoleType )
118+ {
119+ return await GetToken ( record , id , password ) ;
120+ }
121+
122+ return default ;
123+ }
124+
125+ public async Task < Token > GetClientToken ( string authorization )
110126 {
111127 var base64 = Encoding . UTF8 . GetString ( Convert . FromBase64String ( authorization ) ) ;
112128 var ( id , password ) = base64 . SplitAsTuple ( ":" ) ;
113129
114- var hooks = _services . GetServices < IAuthenticationHook > ( ) ;
115130 var db = _services . GetRequiredService < IBotSharpRepository > ( ) ;
116131 var record = id . Contains ( "@" ) ? db . GetUserByEmail ( id ) : db . GetUserByUserName ( id ) ;
117132 if ( record == null )
118133 {
119134 record = db . GetUserByUserName ( id ) ;
120135 }
121136
137+ if ( record != null && record . Type == UserType . Affiliate )
138+ {
139+ return default ;
140+ }
141+
142+ return await GetToken ( record , id , password ) ;
143+ }
144+
145+ private async Task < Token ? > GetToken ( User record , string id , string password )
146+ {
147+ var hooks = _services . GetServices < IAuthenticationHook > ( ) ;
122148 //verify password is correct or not.
123149 if ( record != null && ! hooks . Any ( ) )
124150 {
@@ -242,7 +268,7 @@ private string GenerateJwtToken(User user)
242268 } ;
243269 var tokenHandler = new JwtSecurityTokenHandler ( ) ;
244270 var token = tokenHandler . CreateToken ( tokenDescriptor ) ;
245- SaveUserTokenExpiresCache ( user . Id , expires ) . GetAwaiter ( ) . GetResult ( ) ;
271+ SaveUserTokenExpiresCache ( user . Id , expires ) . GetAwaiter ( ) . GetResult ( ) ;
246272 return tokenHandler . WriteToken ( token ) ;
247273 }
248274
0 commit comments