我正在尝试使用Auth0为我自己的应用程序中的wordPress和话语执行SSO。流程如下所述。
Image added here (low on rep) so cant post
用户在应用程序中输入用户名和密码,详细信息将发送到服务器,该服务器使用auth0 API对用户进行身份验证并发送回令牌。
我在Discourse中从GitHub安装了auth0 SSO plugin2,所有客户端ID,客户端机密都添加到插件中。
当我登录我的应用程序时,我想知道在Discourse的情况下执行SSO的人。
对于WordPress,正在使用以下方法。
<form *ngIf="userService.isAuthenticated()" ngNoForm action="http://xx.xx.xx.xx/index.php?auth0=implicit&client_id=xxxxxxxxxxxxxxxxxxxxxxxxx&connection=xxxxxxxxxx"
method="post">
<input class="hidden" type="text" id="token" name="token" value="{{tokenValueIsHereReturnedbyAuth0Authentication}}" />
<input class="hidden" type="text" id="redirect_to" name="redirect_to" value="http://xx.xx.xx.xx/index.html" />
<input class="btn btn-primary pull-right" type="submit" value="View" />
</form>
那么如何在话语中做类似的事情呢?
我试过以下
然而我无法完成,因为我不知道是什么
https://somesite.com/sso?sso=PAYLOAD&sig=SIG
PAYLOAD和SIG是
更新:
我认为有效载荷:Auth0给我的access_token是有效载荷,编码为Base64
(使用:base64encode dot org),SIG是使用sso_secret作为密钥的有效载荷的HMAC-SHA256散列和Base64编码的有效载荷
(freeformatter dot com slash hmac-generator)
答案 0 :(得分:0)
请查看我的博客文章,了解如何使用Auth0与Discourse集成无缝SSO。
您基本上需要设置一个新的Auth0 Rule,它使用已经开发的库来支持Discourse方式来签署请求。使用您的客户端ID和客户端密钥,复制并粘贴该规则的代码,并带来更好的方法来处理SSO,而无需使用任何额外的插件。很好,很容易:)
https://medium.com/leog-s-blog/discourse-sso-with-auth0-e49486d0294a