Open fabioginzel opened 9 years ago
I think it boils down to: The identity object provided by authentication should be configurable.
That doesn't address your problem directly, but might lead to a solution.
@fabioginzel
How do yo authenticate your users exactly (which adapter did you use)? Do you handle many roles? You could use a listener to override default role id. Right now, role id is set by authentication adapter during authentication process.
I write my adapter
@fabioginzel
So, for instance, if you're using a doctrine object repository authentication adapter, you can set whatever name you want ($identity->setName('<your_role'>), using identity object that should holds your user role.
Ok, but I think this should be configurable
@fabioginzel
Well the role is set by adapter through the setName() method. Default behavior doesn't involve extended ACL permissions system. and anyway, adapter are not aware of full identity object. For instance HTTP adapter only know about an username, a realm and credential.
To resume here, Implementation is up to you. You can always hook
in the code and call setName() when needed to override default value set by adapters. Adapter are not aware of full user entity. For instance, http authentication adapter only know about a username, realm and credential. There is not way to get another thing than the username at this stage. For http adapter, another way would be to use your own resolver, which can return whatever you want.
https://github.com/API-Skeletons/zf-oauth2-doctrine hooks into your user entity and you can authenticate with User Credentials grant https://bshaffer.github.io/oauth2-server-php-docs/grant-types/user-credentials/
This repository has been closed and moved to laminas-api-tools/api-tools-mvc-auth; a new issue has been opened at https://github.com/laminas-api-tools/api-tools-mvc-auth/issues/20.
In ZF\MvcAuth\Identity\AuthenticatedIdentity getRoleId return name but in my case role of user is different of user name.
What's best approach?