Django + Graphene,注册用户后,开发者控制台已经到了一封确认信。我怎样才能控制这封电子邮件?
Posted
技术标签:
【中文标题】Django + Graphene,注册用户后,开发者控制台已经到了一封确认信。我怎样才能控制这封电子邮件?【英文标题】:Django + Graphene, after registering a user, a confirmation letter has arrived in the developer's console. How can I get control of this email? 【发布时间】:2021-01-20 07:45:01 【问题描述】:我正在学习 Django + Graphene + React(Apollo),注册用户后,开发者控制台收到一封确认邮件。我怎样才能控制这封电子邮件?
class AuthMutation(graphene.ObjectType):
register = mutations.Register.Field()
verify_account = mutations.VerifyAccount.Field()
从客户端发送数据后,用户已注册,但要确认它,我必须使用信中的令牌执行突变。
mutation
verifyAccount(token: "YOUR TOKEN FROM LETTER")
success,
errors
信
<h3> site_name </h3>
<p>Hello user.username !</p>
<p>Please activate your account on the link:</p>
<p> protocol :// domain / path / token </p>
我的目标是通过电子邮件确认注册
【问题讨论】:
【参考方案1】:在 Settings.py 文件中添加以下代码
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = 'password' #my gmail password
EMAIL_HOST_USER = 'email' #my gmail username
EMAIL_PORT = 587
【讨论】:
【参考方案2】:您必须使用 javascript 从 URL 中获取令牌。
例如,
const token = window.location.pathname.split("/").pop();
然后使用您在问题中提到的突变将此令牌发送回后端。
【讨论】:
问题是它不是到开发者的浏览器控制台,而是到django项目控制台,我不知道怎么控制这封信。 @Murlodin 你是说你生成的令牌永远不会通过电子邮件到达用户吗?您要做的第一件事是向用户发送一封电子邮件,这样当用户单击提供的链接时,应该从 UI 代码访问令牌并将其发送回后端 API。 这个我明白了,但是不知道怎么设置发送邮件,文档里什么都没有,从模板注册html后直接发送到项目的django控制台。我的问题是如何控制这些数据?我正在使用 graphql_auth。 @Murlodin 发送电子邮件与 GraphQL 无关。您可以搜索在 Python 中发送电子邮件的方法。例如,您可以使用 Python 库,例如 Python Library 或 SendGrid 我明白了。但在我看来,正是这个库将数据发送到控制台。问题是我什至不知道她是怎么做到的,因为我没有为此编写任何代码。而我的任务是截取这些数据以便进一步发送,但我不知道该怎么做。以上是关于Django + Graphene,注册用户后,开发者控制台已经到了一封确认信。我怎样才能控制这封电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
如何仅向graphene-django中的用户个人资料所有者显示特定字段?
如何根据 Graphene/Django 上的用户类型限制模型上的字段访问?
如何使用 curl 登录 Graphene Django 应用程序?
无法在 graphene_django 中获取 OneToOne 关系查询的值