@@ -201,40 +201,35 @@ def validate(self, attrs):
201
201
try :
202
202
alias_type , alias = self .validate_alias (attrs )
203
203
callback_token = attrs .get ('token' , None )
204
- token = CallbackToken .objects .get (** {alias_type : alias ,
205
- 'key' : callback_token ,
204
+ token = CallbackToken .objects .get (** {'key' : callback_token ,
206
205
'type' : CallbackToken .TOKEN_TYPE_AUTH ,
207
206
'is_active' : True })
208
207
209
- if token :
208
+ user = User .objects .get (** {alias_type : alias })
209
+
210
+ if token .user == user :
210
211
# Check the token type for our uni-auth method.
211
212
# authenticates and checks the expiry of the callback token.
212
- user = authenticate_by_token (token )
213
- if user :
214
- if not user .is_active :
215
- msg = _ ('User account is disabled.' )
216
- raise serializers .ValidationError (msg )
213
+ if not user .is_active :
214
+ msg = _ ('User account is disabled.' )
215
+ raise serializers .ValidationError (msg )
217
216
218
- if api_settings .PASSWORDLESS_USER_MARK_EMAIL_VERIFIED \
219
- or api_settings .PASSWORDLESS_USER_MARK_MOBILE_VERIFIED :
220
- # Mark this alias as verified
221
- user = User .objects .get (pk = token .user .pk )
222
- success = verify_user_alias (user , token )
217
+ if api_settings .PASSWORDLESS_USER_MARK_EMAIL_VERIFIED \
218
+ or api_settings .PASSWORDLESS_USER_MARK_MOBILE_VERIFIED :
219
+ # Mark this alias as verified
220
+ user = User .objects .get (pk = token .user .pk )
221
+ success = verify_user_alias (user , token )
223
222
224
- if success is False :
225
- msg = _ ('Error validating user alias.' )
226
- raise serializers .ValidationError (msg )
223
+ if success is False :
224
+ msg = _ ('Error validating user alias.' )
225
+ raise serializers .ValidationError (msg )
227
226
228
- attrs ['user' ] = user
229
- return attrs
227
+ attrs ['user' ] = user
228
+ return attrs
230
229
231
- else :
232
- msg = _ ('Invalid Token' )
233
- raise serializers .ValidationError (msg )
234
230
else :
235
- msg = _ ('Missing authentication token. ' )
231
+ msg = _ ('Invalid Token ' )
236
232
raise serializers .ValidationError (msg )
237
-
238
233
except serializers .ValidationError ():
239
234
msg = _ ('Invalid alias parameters provided.' )
240
235
raise serializers .ValidationError (msg )
@@ -254,7 +249,6 @@ def validate(self, attrs):
254
249
callback_token = attrs .get ('token' , None )
255
250
256
251
token = CallbackToken .objects .get (** {'user' : user ,
257
- alias_type : alias ,
258
252
'key' : callback_token ,
259
253
'type' : CallbackToken .TOKEN_TYPE_VERIFY ,
260
254
'is_active' : True })
0 commit comments