标签: email-confirmation

手动登录没有密码的用户

我希望你能帮助我找到在使用密码的情况下实现手动(服务器端启动)登录的最佳方法.让我解释一下工作流程:

  • 用户注册
  • 谢谢!已发送包含激活链接的电子邮件blablabla
  • (帐户现在存在但标记为未启用)
  • 用户打开电子邮件,点击链接
  • (帐户已启用)
  • 谢谢!您现在可以使用该网站

我想要做的是在用户点击电子邮件链接后登录用户,这样他就可以立即开始使用该网站.

我不能使用他的密码,因为它是在DB中加密的,是编写自定义身份验证后端的唯一选择吗?

django login django-authentication email-confirmation

66
推荐指数
3
解决办法
3万
查看次数

Identity Framework测试确认电子邮件令牌是否已过期

是否可以使用Identity Framework测试确认电子邮件令牌是否已过期UserManager?无论错误是什么,请从以下内容:

var result = await UserManager.ConfirmEmailAsync(userId, code);
Run Code Online (Sandbox Code Playgroud)

我得到一个通用的"无效令牌"错误.

asp.net asp.net-mvc email-confirmation asp.net-identity

18
推荐指数
2
解决办法
1631
查看次数

电子邮件确认码的最佳做法

我正在创建一个涉及用户注册的PHP网站,我想知道"电子邮件确认"代码的最佳实践.

新用户必须确认他们的电子邮件地址 - 我这样做是通过生成代码并通过电子邮件将其发送给用户,然后他可以使用该电子邮件激活他的帐户.我没有将这个密钥存储在数据库中,而是使用了一个方便的小解决方法:代码是以下结果:

md5("xxxxxxxxx".$username."xxxxxxxxxxx".$timestamp."xxxxxxxxx");
Run Code Online (Sandbox Code Playgroud)

其中$ timestamp是指用户创建时间.总的来说,我对此非常满意,但后来我开始思考,这是否足够安全?碰撞的可能性怎么样?我还需要生成密码重置等代码.如果我使用类似的方法,碰撞可能导致一个用户无意中重置另一个用户的密码.这不好.

那你怎么做这些事呢?我的想法是以下格式的表格:

codePK (int, a-I), userID (int), type (int), code (varchar 32), date (timestamp)
Run Code Online (Sandbox Code Playgroud)

其中'type'为1,2或3表示"激活","电子邮件更改"或"密码重置".这是一个很好的方式吗?你有更好的方法吗?

使用类似上面的方法,我可以在不使用cron-jobs的情况下自动删除两天以上的任何内容吗?我的主人(almostfreespeech.net)不支持他们.如果可能的话,我想避免在外部主机上有一个cron-job,这是一个删除东西的脚本,因为那只是凌乱= P.

谢谢!
马拉

更新:
澄清:我已经意识到安全和安全地执行此任务的唯一方法是使用数据库,这是原始功能试图避免的.我的问题是如何构建表(或表?).有人建议我不要使用codePK,只需将代码设为PK即可.简而言之,我的问题是:这是你做的吗?

php activation email-confirmation

15
推荐指数
1
解决办法
7637
查看次数

如何通过JavaMail API接收已发送电子邮件的确认?

我正在编写一个程序,它会发送电子邮件,并想知道接收方何时收到我发给他的电子邮件.如何使用JavaMail API执行此操作?

如果我使用SMTPMessage,在设置通知选项后如何处理结果?

SMTPMessage smtpMsg = new SMTPMessage(msg);
smtpMsg.setNotifyOptions(SMTPMessage.NOTIFY_SUCCESS);
Run Code Online (Sandbox Code Playgroud)

java email smtp email-confirmation

13
推荐指数
2
解决办法
3万
查看次数

如何在asp.net核心mvc中配置确认电子邮件令牌生命周期

我正在尝试延长确认电子邮件和密码重置电子邮件的生命周期,但我无法做到这一点.目前我正在使用Asp.net核心1.0.1,如果这有用的话.

一些提示甚至更好的代码,将非常感激.

谢谢

asp.net-mvc password-recovery email-confirmation asp.net-identity asp.net-core

9
推荐指数
1
解决办法
4100
查看次数

Cognito 用户无法重置其密码,如果其处于“force_change_password”状态,则无法请求重新发送

如果 Cognito 用户丢失了他的确认电子邮件,则无法重置他的密码,或者如果他处于“force_change_password”状态,则要求重新发送,并且不会向他显示任何错误。

有任何已知的修复方法吗?

authentication email-confirmation amazon-cognito

8
推荐指数
1
解决办法
1万
查看次数

Rails设计:"您需要在继续之前登录或注册"而不是"您将收到一封包含说明的电子邮件......"

我已经设置了Devise on Rails 4.2.0并且一切似乎都在工作,我使用了以下指南:

http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

我的设计模块是:

devise :database_authenticatable, :registerable, :confirmable,
       :recoverable, :rememberable, :trackable, :validatable, :omniauthable
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,如果我尝试通过转到注册页面创建一个新帐户,然后在输入我的电子邮件和新密码(两次)后,我将被带回登录页面并看到"未经验证"的消息:

 You need to sign in or sign up before continuing
Run Code Online (Sandbox Code Playgroud)

相反,我应该得到'send_instructions'消息:

 You will receive an email with instructions for how to confirm your email address in a few minutes.
Run Code Online (Sandbox Code Playgroud)

我的ApplicationController中有一个before_filter:

before_filter :authenticate_user!, :except => [:show]
Run Code Online (Sandbox Code Playgroud)

虽然我承认我不明白为什么这不会在登录页面或"忘记密码"页面上给我验证错误.无论哪种方式,我尝试添加:new_user_session到:除了,但这没有帮助.

当有人注册时,如何获得正确的闪存通知?

我没有覆盖任何设计代码(除了sourcey doc建议的内容),我的DeviseHelper只有一个打印出flash消息的方法:

def devise_error_messages!
    return '' if resource.errors.empty?

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
    messages.html_safe
end
Run Code Online (Sandbox Code Playgroud)

编辑:

我最初搜索SO没有帮助(太多类似的问题没有相关性),但现在我发现了这个:

在sign_out错误后设计sign_in

所以我认为问题是,在我执行sign_up操作后,Devise正试图将我带到root_path.我不知道为什么会这样做:确认设置,它似乎应该带我回到sign_in页面.

我尝试通过使用以下命令覆盖cutom注册控制器中的'after_sign_up_path_for'来覆盖它:

覆盖设计注册控制器

也许我做错了,但这似乎没有帮助.

所以现在的问题是,在有人做sign_up后,如何让Devise回到sign_in页面,为什么这不是可确认设置的默认操作?

ruby ruby-on-rails confirmation-email email-confirmation devise

6
推荐指数
1
解决办法
8157
查看次数

如何判断用户的电子邮件地址是否已使用 Django、allauth、rest-auth 和自定义用户进行验证

我将 Django 2.0.10 与 rest-framework、rest-auth 和 allauth 一起使用。我有一个自定义用户模型。

我使用 allauth 视图进行了电子邮件验证。当用户注册时发送验证电子邮件。如果我单击电子邮件中的链接,我将被带到一个页面,其中有一个按钮可以单击以验证电子邮件。这一切都没有错误。但是我无法找出是什么这实际上。用户数据中的字段似乎没有改变。

我想要的行为是让用户能够注册和登录,但只能在他们验证电子邮件后才能向网站添加内容。

编辑:这篇文章给出了部分答案,但没有说明如何将验证状态保存为用户的属性,以便您在加载用户数据时可以在前端进行检查。

设置.py

# django rest auth
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
OLD_PASSWORD_FIELD_ENABLED = True
LOGOUT_ON_PASSWORD_CHANGE = False
ACCOUNT_EMAIL_VERIFICATION = 'optional'
Run Code Online (Sandbox Code Playgroud)

api/urls.py

from allauth.account.views import confirm_email

urlpatterns = [
    re_path(r'^rest-auth/registration/account-confirm-email/(?P<key>[-:\w]+)/$', confirm_email,
     name='account_confirm_email'),
...
]
Run Code Online (Sandbox Code Playgroud)

用户/模型.py

import uuid 

from django.contrib.auth.models import AbstractUser, UserManager
from django.db import models
from django.utils.http import int_to_base36

class CustomUserManager(UserManager):
    def get_by_natural_key(self, username):
        case_insensitive_username_field = '{}__iexact'.format(self.model.USERNAME_FIELD)
        return self.get(**{case_insensitive_username_field: username}) …
Run Code Online (Sandbox Code Playgroud)

django email-confirmation django-allauth

6
推荐指数
2
解决办法
4375
查看次数

Strapi 新用户注册不断收到“电子邮件已被占用”错误,也没有电子邮件确认

我初始化了一个新的 Strapi 服务器并使用不同的数据库,当注册新用户时,我不断收到相同的“消息”:“电子邮件已被占用”错误。我每次都使用不同的用户名和不同的电子邮件。我也根本无法让电子邮件确认起作用。

registration email-confirmation strapi

5
推荐指数
1
解决办法
3584
查看次数

如何在MVC4中使确认链接激活帐户?

我正在构建一个MVC 4应用程序,从默认的Internet应用程序开始.我的目标是在用户注册到网站时向用户发送确认电子邮件,我已设法发送确认电子邮件,但是当我点击它时,帐户未被确认.

注意:我知道注册操作很拥挤,当我使其工作时,我会将各个文件分开.

*这就是我所做的:*

注册行动

[HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            try //CreateUserAndAccount
            {
                var token = WebSecurity.CreateUserAndAccount(model.UserName, model.Password, null, true);
                if (token != null)
                {
                    var hosturl =
                        System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) +
                        "/Account/ConfirmAccount?token=" + token;

                    var confirmationLink = string.Format("<a href=\"{0}\">Clink to confirm your registration</a>",
                                                         hosturl);




                    var message = new MailMessage("komengem@gmail.com", model.UserName)
                    {
                        Subject = "Please confirm your email",
                        Body = confirmationLink
                    };

                    var client = new SmtpClient();
                    client.EnableSsl = true;
                    client.Send(message);
                }

                TempData["message"] = …
Run Code Online (Sandbox Code Playgroud)

c# security email-confirmation ef-code-first asp.net-mvc-4

4
推荐指数
1
解决办法
1万
查看次数