我正在创建iOS应用程序,希望用户能够使用用户名/密码,Google和Facebook登录。
我成功使用OAuth2帮助程序实现了用户名和密码流的身份验证。但是当我开始实施Google / Facebook身份验证流程时,我遇到了一个问题。
问题是我不知道如何设计该流程并在Keycloak中实现它。
我希望它像这样:
- 用户按下按钮即可登录Google
- 请求进入Keycloak
- Keycloak将其重定向到Google
- 用户在Google的提示页面上确认访问权限
- Google的回复返回给Keycloak
- Keycloak解析令牌,获取用户信息,并将其与Keycloak自己的数据库中的现有用户进行匹配。
- Keycloak返回它自己的令牌(不是Google的令牌)
我认为,可以通过某种方式使用Open-ID Connect协议来实现,但是没有意识到。
我已经知道,将用户重定向到Keycloak页面(http://localhost:18080/auth/realms/master/protocol/openid-connect/auth?client_id=<some client id>
)可以很容易地做到这一点,他可以像上面提到的那样输入其凭据或使用Google登录。但这不能满足我的需求,因为我想以iOS风格(swift
,对用户透明)进行操作,而无需重定向到Keycloak。
我想找到一些实现此目的的RESTful方法。请提出一些实现此目标的良好做法。
谢谢