我的服务器上有一个单页应用程序(称之为Collector
),并希望我的用户拥有一个可自定义的链接列表,如:
facebook.com/get_my_latest_posts_about_cats
github.com/get_my_comments_for_repo_LinuxKernel
anynews.com/get_my_soccer_news
他们每次都可以在链接对话框中添加新的/删除链接。
所以我想要做的就是每次登录时都要减轻用户的痛苦,以便从facebook,github,news ...
服务器获取数据。
当然,当用户第一次点击他的任何链接时,他将收到该链接的相应登录页面(例如facebook.com/get_my_latest_posts_about_cats
- > facebook.com/login
),但之后我将会收到使用他们的访问令牌以及存储在Collector database
中的刷新令牌,以便他们不必每次都写下他们的通行证和用户名。
我的问题:
(请告诉我,至少它是否有意义,以便我不会对这是如何工作的任何错误想法)
Collector
网络应用,因为我是第一次这样做,整个authentication process
对我来说也是新的,那么哪一个真的符合我的需求呢?client_secret
存储在我的Collector
数据库中。答案 0 :(得分:1)
对于单页应用,通常最好使用隐式流。这样,访问令牌只会到达前端部分 - 保留在浏览器中,它不会到达收集器后端,因为访问令牌位于哈希部分(#34;#&#34后面) ;)来自OAuth2服务器的重定向URL。然后,您可以将访问令牌存储在浏览器的SessionStorage中,以便在重新加载后继续运行。但是如果您使用此流程,则必须使用HTTPS,否则它不安全(访问令牌通过不安全的渠道传输)。
也许你会想要在当前的令牌到期之前获得新的令牌。它通常使用iframe,但它取决于具体的OAuth2服务器实现。您可以查看http://openid.net/specs/openid-connect-session-1_0.html以获取OpenId Connect(这是OAuth2扩展程序)。