通过电子邮件链接访问AngularJs应用程序

时间:2016-10-12 09:04:13

标签: angularjs

我需要一些可能具有相似类型应用程序经验的人的建议。 我正在构建和应用程序,应该用于在线测试。例如,如果您想在某个公司找到工作,HR可以为您创建测试会话,并向您发送指向应用程序的链接。 该电子邮件将包含一个链接。 在链接点击我想打我的angularjs应用程序。 AngularJs将从它应该向服务器发出请求的链接中获取会话ID。 然后,服务器需要检查db并尝试查找具有该Id的测试会话,并返回一些响应。 (会话数据是否正常或会话过期的消息等)

这里的问题是使用JWT令牌。例如,当HR使用app的一部分时,必须对其进行身份验证,这由jwt令牌完成。

当您在另一方拥有用户时,最佳做法是什么?喜欢参加考试的人。他们没有jwt令牌,但服务器会期望进行身份验证。

如果用户获得一些在测试会话到期时将过期的自定义令牌,那么也许我可以在角度侧解码该令牌并检查用户角色或类似的东西。

是否有人有构建可以通过链接访问的应用程序的经验?

2 个答案:

答案 0 :(得分:1)

使用链接发送自定义令牌并基于该身份验证用户 然后找到该自定义标记的会话ID并返回响应 并在完成测试后使自定义令牌无效。

答案 1 :(得分:1)

这是一个可能的场景

  1. HR连接到应用并生成新的测试会话

  2. 在数据库中创建一个包含所有必要信息的新测试会话+添加2列:Token + Token_ExpirationToken将是一个随机字符串,而Token_Expiration现在是+ x小时

  3. 通过电子邮件将令牌链接发送给用户。 例如 http://myapp.com/?token=ahdk5d5ek4945gol

  4. 用户点击将其重定向到着陆页的链接。

  5. 从网址中检索令牌并将其发送到服务器
  6. 服务器必须检查数据库中是否存在此令牌
    • 如果令牌不存在 - 禁止访问
    • 如果令牌存在 - 请检查当前时间是否超过Token_Expiration
  7. 用户完成测试

  8. 服务器必须删除Token或使用第三列Valid并将其设置为false

相关问题