我有一个典型的网络应用程序,我想让用户注册使用他们的谷歌帐户。我的前端应用程序是用离子/角度编写的,所以我使用了一个插件(https://github.com/CodetrixStudio/CapacitorGoogleAuth)。我相信它使用了"oauth2隐式流“(如果我错了,请纠正我)。
我已经在(web应用程序)上配置了应用程序,我可以使用我的帐户获取访问令牌和帐户信息。
我的问题是我不确定我做得对不对。因为:
发布于 2020-05-10 17:27:33
我想我已经准备好回答我自己的问题了(希望这会对某人有所帮助)
首先,我想推荐这个视频:https://www.youtube.com/watch?v=996OiexHze0
第一件事是有两个主要的OAuth2流:
第二件事是区分身份验证和授权。认证就是告诉“你是谁”。授权是关于“你能做什么”。大多数时候,当您阅读关于OAuth2的文章时,它的重点是授权(比如,如果您有令牌的话,可以访问某些资源)。
但在我的例子中,这是一个身份验证问题,而OAuth2 OpenID正是我所需要的(同样--视频中的更多细节)。我使用隐式流(直接返回令牌给调用者),因为我需要在注册表单中显示用户的电子邮件(让他填写其余的)。因此,在我的场景中,不需要使用“客户端机密”(用于从代码中获取令牌-应用于代码流)。
因此,我的通信模式应该如下所示:
request
id_token (JWT由google签名)应用程序)向后端发送注册请求。该请求包含id_token -它可以被验证(在线或离线;请参阅https://www.oauth.com/oauth2-servers/signing-in-with-google/verifying-the-user-info/ ),在文章末尾,离线验证被触摸,并有一个指向Google的文档的链接),以确保电子邮件地址是一个现有的
在移动应用程序中,它使用了一些内部Android库,但通用模式适用。
关于流量我送你去录影带。
https://stackoverflow.com/questions/61702793
复制相似问题