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 关系查询的值

如何将 Angular/Apollo 客户端与 graphene-django 集成?

在 graphene/graphene_django 中扩展查询参数