Which Role to choose for an User
From a UX stand point, Option A is better. If Abe has to perform a variety of tasks, then he may have to log out and log in multiple times under different roles, increasing his cognitive load and potentially delay between accomplishing his task.
From a development standpoint, Option B may be slightly easier, if for the the only reason that you must now perform track the users permissions in a slightly more complex way on the backend, but I'd largely consider this negligible.
I personally would go with Option A for these reasons.
In an RBAC an User can have multiple roles. Say, an User named Abe is part of couple of Roles, Driver and Mechanic. Abe wants to check whether the truck needs an OilChange (an operation only Mechanics can do)
Option A) When Abe logs in to the application (mobile app or webpage), the backend authenticates Abe and determines that he has two roles. The application iteratively checks each of the Roles and see which Role has the permission to do that operation.
Option B) When Abe logs in to the application (mobile app or webpage), he choose the Role along with it. And backend authenticates Abe and uses the Role sent by Abe to check whether he has the permission to do that operation.
Or is there a better way to chose a Role for an action performed by the User? 
Thanks.