美文网首页
NGINX gateway 实现OpenIDConnect RP

NGINX gateway 实现OpenIDConnect RP

作者: 橄榄树下的托马斯 | 来源:发表于2017-05-28 11:55 被阅读0次

    作者:刘宾, thomas_liub@hotmail.com
    请尊重作者著作权,转载请注明出处,谢谢!


    Gateway Flow

    1. 第一次登陆
      access_resty.authenticate(opts)
      openidc.authenticate(opts)
      session = session.start()
      openidc.openidc_authorize(opts,session)
      session.start(session)
      session.data.original_url = target_url
      session.data.state = state
      session.data.nonce = nonce
      session.save(session)

    2. 授权码校验
      access_resty.authenticate(opts)
      openidc.authenticate(opts)
      session = session.start()
      openidc.openidc_authorization_response(opts, session)
      session.start(session)
      session.data.user = user
      session.data.id_token = id_token
      session.data.enc_id_token = json.id_token
      session.data.access_token = json.access_token
      session.save(session)

    3. 后续访问
      access_resty.authenticate(opts)
      openidc.authenticate(opts)
      session = session.start()
      openidc.openidc_call_userinfo_endpoint(opts, session)

    4.登出
    access_resty.authenticate(opts)
    openidc.authenticate(opts)
    session = session.start()
    openidc.openidc_logout(opts, session)

    1. 会话start
      session.start(opts)
      如存在,直接返回
      session.open(opts)
      如存在,直接返回
      session.new()
      如存在,直接返回
      初始化新的session
      设置session metatable
      self.opened = true
      getcookie(self)
      根据cookie读取session数据
      self.present = true
      return self, true
      self.started = true

    session.opened:表示当前请求session开启状态
    session.present: 表示当前用户session是否存在


    相关文章

      网友评论

          本文标题:NGINX gateway 实现OpenIDConnect RP

          本文链接:https://www.haomeiwen.com/subject/smthfxtx.html