Closed
Description
In the initialization of the Meta class of a DjangoFormMutation, the output fields are declared similar to the input fields of the mutation, like:
input_fields = fields_for_form(form, only_fields, exclude_fields)
output_fields = fields_for_form(form, only_fields, exclude_fields)
For example, if we have a form for authentication, like the one provided by django:
class AuthenticationForm(forms.Form):
"""
Base class for authenticating users. Extend this to get a form that accepts
username/password logins.
"""
username = UsernameField(
max_length=254,
widget=forms.TextInput(attrs={'autofocus': True}),
)
password = forms.CharField(
label=_("Password"),
strip=False,
widget=forms.PasswordInput,
)
...
And we link it to a mutation:
class AuthMutation(DjangoFormMutation):
"""
Mutation to login a user
"""
class Meta:
form_class = AuthenticationForm
...
generates a mutation that requires a username and a password on the response.
AuthMutationPayload{
username: String!
password: String!
clientMutationId: String
}
Is this right? Is sending back the password to the user secure? I think the output fields should be initialized as an OrderedDict()
.