使用symfony2表单和模型进行验证

I have a Model which have token field and a choice field type "userType". This single form can be used to register user by following two ways:

  1. Email and password - no use of token
  2. Using Fb or G+ - need to pass token

I am in dilemma where and how to check for the validation for token. In my mind I have two approaches as described below:

Approach 1:

Add token field in Form Type Class as an optional field and write a Custom Validation to check that if userType choice field value is "Fb" or "G+" check for token and throw exception accordingly.

Approach 2:

Write an Event Subscriber and check if userType choice field's value is "FB" or "G+" then only add token field dynamically as a required field. In this case I think I need to remove token from my Model(need suggestion on this also).

Please help me on this, any other suggestions or approaches are also welcomed.