所以我的所有auth都在我的MVC网站上工作,但我想问:在我的应用程序中传递访问令牌的推荐方法是什么?
所以,我点击登录,弹出一个对话框,然后我登录。我父窗口收到访问令牌,我得到了一些播放列表。但是,如果我去另一个页面,这将是一个全新的请求怎么办?我是在传递查询字符串,会话还是cookie?我已经搜索了API文档,但无法找到任何相关信息。
答案 0 :(得分:2)
我会说你应该将它存储在你提出请求的那一面。如果请求是在客户端完成的,那么保持访问令牌客户端。您可以使用localStorage
将其保留,就像web api player example中所做的那样。这样,当您需要发出请求并使用它直到它过期时,您可以从localStorage读取。
然后,如果您使用了authorization code flow,则需要刷新它,因此用户无需每60分钟登录一次。为此,您需要从服务器发出请求,因为刷新过程涉及发送您不希望在浏览器中提供的秘密。您可以将刷新令牌存储在服务器中(例如,存储用户< - >刷新令牌的数据库表中),也可以存储在浏览器的localStorage中,并在需要刷新时将其发送到服务器。
您也可以将其存储为cookie,但如果服务器不需要了解它,则localStorage会更好。
答案 1 :(得分:0)
我认为Identity将保存有关登录用户的所有详细信息。如果我们想要额外的东西,我们可以扩展它。
以下链接可能有所帮助: http://www.codeproject.com/Tips/574576/How-to-implement-a-custom-IPrincipal-in-ASP-NET-MV