App metadata instead of user metadata (#55)

From the [docs](https://auth0.com/docs/metadata):
> An authenticated user can modify data in their profile's user_metadata, but not in their app_metadata.

Seems role-type information should be stored in `app_metadata`.
This commit is contained in:
Will O'Brien
2017-04-21 16:46:15 -05:00
committed by Joe Nelson
parent 625f2ce8d7
commit f52829d165
+3 -3
View File
@@ -236,14 +236,14 @@ An external service like `Auth0 <https://auth0.com/>`_ can do the hard work tran
To use Auth0, copy its client secret into your PostgREST configuration file as the :code:`jwt-secret`. (Old-style Auth0 secrets are Base64 encoded. For these secrets set :code:`secret-is-base64` to :code:`true`, or just refresh the Auth0 secret.) You can find the secret in the client settings of the Auth0 management console. To use Auth0, copy its client secret into your PostgREST configuration file as the :code:`jwt-secret`. (Old-style Auth0 secrets are Base64 encoded. For these secrets set :code:`secret-is-base64` to :code:`true`, or just refresh the Auth0 secret.) You can find the secret in the client settings of the Auth0 management console.
Our code requires a database role in the JWT. To add it you need to save the database role in Auth0 `user metadata <https://auth0.com/docs/rules/metadata-in-rules>`_. Then, you will need to write a rule that will extract the role from the user metadata and include a :code:`role` claim in the payload of our user object. Afterwards, in your Auth0Lock code, include the :code:`role` claim in your `scope param <https://auth0.com/docs/libraries/lock/v10/sending-authentication-parameters#scope-string->`_. Our code requires a database role in the JWT. To add it you need to save the database role in Auth0 `app metadata <https://auth0.com/docs/rules/metadata-in-rules>`_. Then, you will need to write a rule that will extract the role from the user metadata and include a :code:`role` claim in the payload of our user object. Afterwards, in your Auth0Lock code, include the :code:`role` claim in your `scope param <https://auth0.com/docs/libraries/lock/v10/sending-authentication-parameters#scope-string->`_.
.. code:: javascript .. code:: javascript
// Example Auth0 rule // Example Auth0 rule
function (user, context, callback) { function (user, context, callback) {
var role = user.user_metadata.role; user.app_metadata = user.app_metadata || {};
user.role = role; user.role = user.app_metadata.role;
callback(null, user, context); callback(null, user, context);
} }