用于创建用户的REST会话工作流
本文关键字:会话 工作流 REST 创建 用户 用于 | 更新日期: 2023-09-27 18:28:50
我正在开发一个C#WebApi/MVC项目,该项目有一个相当大的工作流程来创建用户并放入他们所需的信息。其中涉及大约10个主要步骤,从技术上讲,用户可能需要数小时才能填写。
第一步采用标准的基本信息,如用户名、密码、电子邮件、姓名、地址等。
我想做的是,在第一步成功后,发送一个rest调用,该调用将在用户表中创建基本用户,然后为下一步准备一个会话,在下一步中填写任何字段时,它将自动发送一个ajax调用并更新数据库中的字段。
虽然这一切在理论上听起来很简单,因为我可以在MVC中使用会话,但我想在WebApi中使用REST来实现这一点,其中REST应该是无状态的。
有人遇到过类似的问题吗?如果是,他们建议采取什么方法?我目前能想到的选项是:
-放弃此进程的标准MVC的REST,只保留Reads而不是Writes的WebAPI,因为唯一的Write进程是用户/帐户的初始创建。
-使用身份验证令牌?但这能成功地处理这个过程吗?
-创建用户后,将每个REST调用的用户名/密码作为WebAPI的身份验证?将用户/密码存储在MVC会话中,并直接从MVC调用API,移动应用程序只需将用户名/密码存储到应用程序中并调用WebAPI(我认为这是最合适的)
有人能告诉我,这些选择中是否有任何一个是最佳实践,或者有人对这些事情有更好的最佳实践/流程吗?我宁愿写一次内容来尽可能多地覆盖Web和Mobile,而不是重复流程。
提前感谢!!!
我会考虑修改常规的WebAPI OWIN寄存器流。
- 收集基本的用户信息并通过Ajax发布到Web API。如果成功-在HTTP标头中将OWIN令牌发送回调用方
- 继续额外用户信息更新的步骤(例如通过HTTPPUT)authenticate标头中的令牌。使用标记WebAPI更新过程Authorize属性
这篇博客文章可以帮助设置WebAPI来发布和接受承载令牌。