我不喜欢(1)的原因是它在我们的webapp中打开了一个新的认证流程,并迫使本机应用程序实现更复杂的认证流程。
这里有什么东西我不知道,什么是最佳做法?
答案 0 :(得分:1)
关键是Google需要对您应用以外的用户进行身份验证,以确保您的应用无法看到用户凭据,从而无法实现OAuth的目的。
用户还需要明确允许该应用,以避免随机应用从用户获取令牌:拥有Google帐户的任何人都可以创建client_id
/ client_secret
/ redirect_uri
组合。 Google /您的应用不会信任任意用户的令牌,而无需先询问这些用户。正如你在(1)中提到的,用户只需要经历一次。该应用程序可能会检索一个长期存在的刷新令牌并继续使用它来刷新访问令牌。
因此,最佳做法是生成浏览器/ webview并处理其中的身份验证/同意流程。没有办法解决这个问题。如果有一种方法,那就是一个漏洞,因为系统的目的是避免它。
答案 1 :(得分:0)
我会说像nr 2:
有办法将客户端(由clientId和clientSecret标识)标记为信任(例如,使用超级用户界面),从而自动给予同意。
客户秘密应该是安全的;如果不是,你还有其他安全问题。