使用社交身份验证限制访问静态网站的最简单方法是什么

时间:2018-06-12 04:34:46

标签: authorization access-control social-authentication

我有一个由html / css / javascript文件组成的静态网站。该网站会自动生成并经常更新。

我希望让用户使用Google登录/ openID Connect进行身份验证,然后通过Gmail地址列表来控制访问权限,而不是授权使用用户名/密码(基本身份验证)访问网站。

设置此内容的最简单方法是什么?

3 个答案:

答案 0 :(得分:1)

我最终使用了oauth2_proxy,这正是我想要的。

我配置为执行以下操作:

  • oauth2_proxy侦听0.0.0.0:443
  • 当用户连接时,会启动Google登录流程
  • 登录后,会根据白名单
  • 验证用户的电子邮件地址
  • 成功验证后,oauth2_proxy将请求代理到侦听127.0.0.1:8080的上游nginx服务器

答案 1 :(得分:0)

向任何静态站点添加身份验证或门控内容的另一种方法:
1)首先加载静态容器页面(页眉,页脚),然后使用Auth0,firebase,okta等实现用户身份验证js代码。

2)用户成功登录后,进行一次Ajax api调用,传递该auth access_token以检索敏感内容。

3)使用js在网站中加载/添加敏感内容。

当然,必须有一个服务器/无服务器功能,可以侦听该ajax api调用,对其进行身份验证并将内容发送回浏览器。

这称为客户端身份验证。

有关此内容的更多信息:https://auth0.com/blog/ultimate-guide-nextjs-authentication-auth0/

答案 2 :(得分:-1)

最好的方法是使用Firebase Auth! 请查看https://firebase.google.com/docs/auth/

您可以通过这种方式检查用户是否经过身份验证。

<script type="text/javascript">

        function initApp() {
          // Listening for auth state changes.
          // [START authstatelistener]
          firebase.auth().onAuthStateChanged(function (user) {
            if (user) {
              //User is signed in.
                  if (!emailVerified) {
              //Additional check for email verification
              }
            } else {
              // User is signed out.
            }
          });
          // [END authstatelistener]
        }
        window.onload = function () {
          initApp();
        };
      </script>