我需要使用IBM App ID服务从客户自己的前端应用程序使用google / facebook实现登录。由IBM must never show提供的含义登录小部件。
前端是使用react js开发的,后端是单独的node-js服务器。我想出了如何绕过小部件进行云目录登录,但是我没有运气来进行社交登录。如果我只是复制默认IBM应用程序ID登录小部件提供的Google登录的表单代码(复制的代码如下)
<form
action="https://accounts.google.com/o/oauth2/v2/auth"
method="get"
id="google_form"
aria-label="google_form"
>
<input
type="hidden"
name="client_id"
value="526589484289-sth1s4he8en575sugh6rain3hh054p97.apps.googleusercontent.com"
id="google_client_id"
></input>
<input
type="hidden"
name="redirect_uri"
value="https://eu-uk.appid.cloud.ibm.com/oauth/v4/DEFAULT-GOOGLE-TENANT-ID/Google/callback"
id="google_redirect_uri"
></input>
<input type="hidden" name="response_type" value="code"></input>
<input
type="hidden"
name="scope"
id="google_scope"
value="email profile"
></input>
<input
type="hidden"
name="state"
value="woU6LcOCwrTDr8OXw63DnQNAwr5xdinCtxcKJsKKYcKWX8OGw5zCoh0Fw4k"
id="google_state"
></input>
<button
type="submit"
id="google_login"
>
<div>Login with Google</div>
</button>
</form>
有时我得到以下信息(它工作了几次,但由于某种原因重定向被重定向到后端“ /”路由)
{
"error_code": "GENERAL_ERROR",
"error_description": "key not found"
}
问题是如何使用自定义UI进行社交登录,以及必须发送到护照以登录,获取令牌和用户数据的内容。以及如何将这些数据重定向到前端服务器。 (前端在单独的服务器上,与后端的通信是REST,因此必须随每个请求发送令牌)
我已经在这个问题上停留了几天,没有任何运气,所以将不胜感激。我很欣赏代码示例,该示例显示了如何使用IBM App ID从自定义前端使用Google或Facebook登录到Nodejs后端,但是完全没有帮助。
提前谢谢您
如果您在应用程序ID中禁用了所有其他身份提供者,那么您应该直接转发到Google身份验证。这样就不会显示App ID的登录小部件。
[如果您希望在不显示窗口小部件的情况下登录FB,Google和Cloud Directory,则将需要3个不同的App ID实例。每个配置为只有一个身份提供者。