因此,我们目前正在寻求构建一个网站,该网站利用 Web API 进行所有身份验证以及与数据库的通信。我们目前不确定的是如何通过 Web API 进行身份验证来将用户保留在我们的 MVC 应用程序中。
这在 MVC 方面发生在哪里?我们应该如何使用 Web API 进行身份验证?
编辑:我想知道的另一件事是,我们是否可以在身份用户通过身份验证后调用 API 来获取身份用户,并在事物的 MVC 端实例化身份用户,并将它们存储在 session 变量中以保持不变在我们的应用程序上。这可行吗?知道它会是什么样子吗?
请您参考如下方法:
MVC 利用 session 进行身份验证。一个 cookie 被发送给用户,网络浏览器将该 cookie 与每个请求一起发回,以使服务器能够恢复 session 并将用户识别为已通过身份验证。
Web Api 是基于 REST 的并且无状态。没有 session 、cookie 等概念。每个 Web Api 请求都必须在请求中进行身份验证,通常是通过传递带有不记名 token 或类似内容的 Authorization header 。
如果 MVC 应用程序利用 Web Api 进行身份验证,则 Web Api 应该向 MVC 应用程序返回一个身份验证 token 。然后,MVC 应用程序应该通过设置正常的身份验证 cookie 来“登录”用户并保存 token ,以便它可以使用它来验证 future 的 Web Api 请求。换句话说,MVC 应用程序仍然像往常一样处理授权。唯一的区别是 Web Api 的响应决定了它是否认为用户名/密码组合是正确的,而不是直接进行数据库查询。
