3

所以我的所有身份验证都在我的 MVC 网站上工作,但我想问:在我的应用程序中传递访问令牌的推荐方法是什么?

因此,我单击登录,弹出一个对话框并登​​录。我的父窗口接收访问令牌,我得到一些播放列表。但是如果我转到另一个页面,那将是一个全新的请求呢?我是在查询字符串中传递它,还是在会话中传递它,或者可能是一个 cookie?我已经为此搜索了 API 文档,但找不到任何关于它的信息。

4

2 回答 2

4

我会说您应该将其存储在您发出请求的一侧。如果请求是在客户端完成的,则将访问令牌保留在客户端。您可以使用 将其持久localStorage化,就像在web api 播放器示例中所做的那样。这样,您可以在需要发出请求时从 localStorage 读取并使用它直到它过期。

然后,如果您使用了授权码流程,您将需要刷新它,这样用户就不需要每 60 分钟登录一次。为此,您需要从服务器发出请求,因为刷新过程涉及发送您不想在浏览器中提供的密钥。您可以将刷新令牌存储在服务器中(例如,在存储用户 <-> 刷新令牌的数据库表中)或浏览器的本地存储中,当您想要刷新它时将其发送到服务器。

您也可以将其存储为 cookie,但如果服务器不需要知道它,则 localStorage 更好。

于 2015-04-02T08:42:16.670 回答
0

我认为身份将保存有关登录用户的所有详细信息。如果我们想要额外的东西,我们可以扩展它。

下面的链接可能会有所帮助: http: //www.codeproject.com/Tips/574576/How-to-implement-a-custom-IPrincipal-in-ASP-NET-MV

于 2015-04-01T20:48:49.837 回答