You'll likely want to use SOCIAL_AUTH_FIELDS_STORED_IN_SESSION to configure query parameters you can pass into your socialauth_begin
endpoint. You can then retrieve this value in your SOCIAL_AUTH_PIPELINE
and access the request.session for this value.
Something like:
Your Settings
SOCIAL_AUTH_FIELDS_STORED_IN_SESSION = ('user_type', )
Your Login Template
a href="{% url socialauth_begin '[backend]' %}?user_type=vendor">Sign-in as Vendor</a>
Your Pipeline Stage
def set_user_type(strategy, details, response, user=None, is_new=False, *args, **kwargs):
user_type = strategy.session.get('user_type')
if user_type == 'vendor':
...