{"componentChunkName":"component---node-modules-arcblock-gatsby-theme-docs-src-templates-documentation-js","path":"/zh/developer/auth-service","result":{"data":{"file":{"changeTime":"5 minutes ago","childMarkdownRemark":{"frontmatter":{"author":"linchen","category":"","date":null,"description":"Auth Service 使用说明","draft":null,"keywords":"abtnode, blocklet, service, auth","language":"zh","layout":"documentation","path":"/zh/developer/auth-service","tags":["abtnode","blocklet","service","auth"],"title":"为 Blocklet 配置 Auth Service"},"htmlAst":{"type":"root","children":[{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Auth Service 是 ABT Node 为 Blocklet 提供的通用 Auth 服务。"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Blocklet 可以通过在 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"blocklet.yml"}]},{"type":"text","value":" 中以声明的方式启用和配置 Auth Service."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Auth Service 包含以下主要能力："}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"设置登录可访问"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"设置授权可访问"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"设置邀请登录和开放登录"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"入门","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%85%A5%E9%97%A8","ariaLabel":"入门 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"入门"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/blocklet/html-2048-sample"},"children":[{"type":"text","value":"static-demo-blocklet"}]},{"type":"text","value":" 是一个可以运行在 ABT Node 上的 html5 游戏。下面将介绍如何制作一个拥有 Auth 能力（登录后可访问）的 static-demo-blocklet."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":0},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"前置条件: 本地安装并且运行 v1.2.0 以上版本的 ABT Node"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"下载项目源代码 "},{"type":"element","tagName":"a","properties":{"href":"https://github.com/blocklet/html-2048-sample"},"children":[{"type":"text","value":"html-2048-sample"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"打开项目根目录下 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"blocklet.yml"}]},{"type":"text","value":", 找到 name 为 publicUrl 的 interface, 并添加 Auth Service 配置"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-yml"],"yml":""},"children":[{"type":"text","value":"interfaces:\n  - type: web\n    name: publicUrl\n    path: /\n    prefix: '*'\n    port: BLOCKLET_PORT\n    protocol: tcp\n+   services:\n+     - name: '@abtnode/auth-service'\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":3},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在项目根目录下执行 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"blocklet bundle"}]},{"type":"text","value":". 执行成功后, 在 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":".blocklet/bundle"}]},{"type":"text","value":" 中会看到被成功创建的 blocklet bundle."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"linchen@LinkdeMacBook-Pro html-2048-sample % blocklet bundle\n\nℹ Bundling in zip mode for blocklet static-demo-blocklet...\n\n✔ Creating blocklet bundle in .blocklet/bundle... Done in 0.018s\n✔ Blocklet static-demo-blocklet@1.1.7 is successfully bundled!\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":4},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在项目根目录下执行 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"blocklet deploy .blocklet/bundle"}]},{"type":"text","value":", 将 blocklet bundle 发布到本地运行的 ABT Node."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"linchen@LinkdeMacBook-Pro html-2048-sample % blocklet deploy .blocklet/bundle\nℹ Try to deploy blocklet from /Users/linchen/code/blocklet/html-2048-sample/.blocklet/bundle to Local ABT Node\nℹ Node did from config zNKqGAvUzcCowxtNA5r5gKQYUm2hR4X2SE2o\nℹ Load config from /Users/linchen/code/arcblock/andata/.abtnode/abtnode.yml\n✔ Blocklet static-demo-blocklet@1.1.7 was successfully deployed!\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":5},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"在 ABT Node dashboard 启动 Static Demo"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1000px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 62.4%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA/0lEQVQoz52RQU7EMAxFc/8LsUdiwQIkTsCGtumQNInj2E5nww/dgAYGNFFkNXaf/4/j/Lp6j7Cup9OWtyKRJKvZb7sy55KYE6fVUa3c2uL9vCx93812tX4FRvXxxe7u7eHJXCECD+lpnreUrmJjQykm9e+K6CoWcwghblsuBWVRJWbtQx+ZJhJjtE8s5YyMaKtMauJYWmztGXAIwIZnlfo25elVcmA9I5lyOm5H0FEiAW9i6tacYqUysC/2iBQ5aZfTghG0O6ILMRaqvX8fEo69/3l/hyENSyLoejQehWOZXgL4Af4xZnwcymT/0PlZGYI3wpCFjRvIAePdboY/AFBJsO7Pw4fwAAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"static demo 1","title":"static demo 1","src":"/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/ea415/static-demo-1.png","srcSet":["/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/41b2e/static-demo-1.png 250w","/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/36a81/static-demo-1.png 500w","/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/ea415/static-demo-1.png 1000w","/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/5dce9/static-demo-1.png 1500w","/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/25a1a/static-demo-1.png 2000w","/abtnode/static/3bf5acc2856ae6e5d5cc339211202dd5/acb5a/static-demo-1.png 2782w"],"sizes":["(max-width:","1000px)","100vw,","1000px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":6},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"访问 Static Demo, 会看到登录页, 也就是说 Static Demo 已经拥有了 Auth 能力."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1000px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 113.6%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAXCAIAAACEf/j0AAAACXBIWXMAAAsTAAALEwEAmpwYAAACRklEQVQ4y41UXYvaUBDdf9V/sYXal7aytYjstugatFhUFPVF7IMWbKnIllYoZUFKC33RCtvW0A+Q/gVFDComakzMTUxi7EnS2pXdEIdhNDPn3Jm5d+49kBXlWlVWK03XoU4A6IETU1wuJyw7m8/3JYOzUlVY3TCGw2Gr1ep0OkSWbSesIxlhfrEYMAzLcXOeh2UYZjQeTzhuOpvBA8VC15BXlsiELARhKZlCCFFVFc4lhBDJUhsG9F8ysXJurohhGCzL8jx/NbRerx3J6gouBQWi7clkYlYqy9j4vcjjMccvBJQniKIgCEg+naJhwSrHmWxYwV+/uUbzK01/a7fbNE3/+E5//ET3h7oreQ2LTaYoKhAIhEIhn88Xi8UqlZeCIG5Xv54MLyxOKxgM+v3+fD6fy+WSyWS5/Bxbvhe53+9HIpFMJlOtVguFQjQarVQqODYXsh0bDAZgglYqlRKJRDabrdVqQO2VudvtZrOZYrEYj8dTqVQ4TJ2dVUXRvWcz9rMzeP3m7ZeLi3q93mw2z8/fvf/wmRm7lW0LLxiqOREGQJqGEzIkZSPJbhOGhe3KYa1bpGGfNE21g3C6Z8YnfMBhJMlSlURFIpKu646Z7YQYqXQ6jdnAUZ2cHD8rlV+8Sp0+vnMapCIR6tHD49FoBJj+73nZITcajXA47PF4vF7v4c3D+JNU5ukDz70b3rv3j468tz23er0eYNu3ybzPdpF2P5qm7VzM9cYa2f/31GxnW7b9gyfC1sv/TVXknc9LMMcHcE/9A0Gj5bhZE02xAAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"static demo 2","title":"static demo 2","src":"/abtnode/static/924bb30e7ef3ca3c5601ae9278108901/ea415/static-demo-2.png","srcSet":["/abtnode/static/924bb30e7ef3ca3c5601ae9278108901/41b2e/static-demo-2.png 250w","/abtnode/static/924bb30e7ef3ca3c5601ae9278108901/36a81/static-demo-2.png 500w","/abtnode/static/924bb30e7ef3ca3c5601ae9278108901/ea415/static-demo-2.png 1000w","/abtnode/static/924bb30e7ef3ca3c5601ae9278108901/37d1e/static-demo-2.png 1388w"],"sizes":["(max-width:","1000px)","100vw,","1000px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{"start":7},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"登录成功后, 会成功看到游戏页面. 此时, 在 ABT Node dashboard 中会看到登录用户的信息."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1000px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 64%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABIElEQVQoz52Sy27EIAxF8/9f1H1/o9KoitRREoLNwzbQWfQS5tGuqhlkISR8rq8x0+49E0XnEnmJnFWs1tKalXKPUuvtXEUlppxSzsFPIUZjMvItx8J0KSqquEKqmo09i9yFtIvhYGo6EXPeFn/+yt6pW+eZT/O6uQ1MTGmQHMKNtEeUMiEjSvYpiCJN3t7t47N+XxqsjhgY7CCuLRwkuuu2AaG+1ipmrWWoBLQl0sVUcKYQiMkTIRlYr0dsqhMeDB3CGJwAllKRvTmHVFztfucAa2Y1QytgoRIk1k2JOzwsjU7uz/snfj17ORYcdtuA9WjmhZi23cut4NOwX86akj2+wTPwMp/wsay2V2DGkF623b+RGqY14l8hzAUzA4X9B7f166gb9N7RAAAAAElFTkSuQmCC'); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"static demo 3","title":"static demo 3","src":"/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/ea415/static-demo-3.png","srcSet":["/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/41b2e/static-demo-3.png 250w","/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/36a81/static-demo-3.png 500w","/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/ea415/static-demo-3.png 1000w","/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/5dce9/static-demo-3.png 1500w","/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/25a1a/static-demo-3.png 2000w","/abtnode/static/cbd9bc1ac9dd54e40e1435e47cd00dc8/5ee56/static-demo-3.png 2770w"],"sizes":["(max-width:","1000px)","100vw,","1000px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"恭喜!"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"demo","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#demo","ariaLabel":"demo permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"Demo"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"a","properties":{"href":"https://github.com/blocklet/auth-demo"},"children":[{"type":"text","value":"https://github.com/blocklet/auth-demo"}]},{"type":"text","value":": 基于 Auth Service 实现了登录，登出，显示用户信息，认证，授权功能"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"启用-auth-service","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E5%90%AF%E7%94%A8-auth-service","ariaLabel":"启用 auth service permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"启用 Auth Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"在 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"blocklet.yml"}]},{"type":"text","value":" 中，在需要启动 Auth Service 的 interface 下，配置并启用 Auth Service"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-yml"],"-":"","type:":"","web":""},"children":[{"type":"text","value":"interfaces:\n  - type: web\n    name: xxxx\n    # ... other interface config\n    services:\n      - name: '@abtnode/auth-service'\n        config:\n        # ...\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"配置","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E9%85%8D%E7%BD%AE","ariaLabel":"配置 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"配置"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"e.g."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-yml"],"-":"","type:":"","web":""},"children":[{"type":"text","value":"interfaces:\n  - type: web\n    name: publicUrl\n    # ... other interface config\n    services:\n      - name: '@abtnode/auth-service'\n        config:\n          invitedUserOnly: no\n          profileFields:\n            - fullName\n            - email\n            - avatar\n          webWalletUrl: https://web.abtwallet.io\n          ignoreUrls:\n            - /path/to/**\n          blockUnauthenticated: true\n          blockUnauthorized: false\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"invitedUserOnly: 是否只能通过邀请链接登录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"default: no"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"profileFields: 登录时需要提供的身份信息"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"default: [fullName, email, avatar]"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"blockUnauthenticated: Auth Service 是否自动拦截未登录的请求, 并跳转到登录页"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"default: true"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"blockUnauthorized: Auth Service 是否自动拦截未授权的请求"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"default: false"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"ignoreUrls: Auth Service 不会拦截哪些 url"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"default: none"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"webWalletUrl: 通过 Auth Service 登录时的 Web Wallet 地址"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"default: "},{"type":"element","tagName":"a","properties":{"href":"https://web.abtwallet.io"},"children":[{"type":"text","value":"https://web.abtwallet.io"}]}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"设置登录可访问\b","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%BE%E7%BD%AE%E7%99%BB%E5%BD%95%E5%8F%AF%E8%AE%BF%E9%97%AE%08","ariaLabel":"设置登录可访问\b permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"设置登录可访问\b"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"启用 Auth Service 后，Auth Service 会自动拦截未登录的请求, 并跳转到 Auth Service 登录页."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果 Blocklet 希望自己处理未登录的请求, 可以做如下配置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-yml"],"-":"","type:":"","web":""},"children":[{"type":"text","value":"interfaces:\n  - type: web\n    name: xxxx\n    # ... other interface config\n    services:\n      - name: '@abtnode/auth-service'\n        config:\n          blockUnauthenticated: false\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"设置授权可访问\b\b\b\b","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%BE%E7%BD%AE%E6%8E%88%E6%9D%83%E5%8F%AF%E8%AE%BF%E9%97%AE%08%08%08%08","ariaLabel":"设置授权可访问\b\b\b\b permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"设置授权可访问\b\b\b\b"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"启用 Auth Service 后，Auth Service "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"不会"}]},{"type":"text","value":" 自动拦截未授权的请求. Blocklet 需要自己处理."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"如果 Blocklet 希望 Auth Service 自动拦截未授权的请求, 可以做如下配置:"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-yml"],"-":"","type:":"","web":""},"children":[{"type":"text","value":"interfaces:\n  - type: web\n    name: xxxx\n    # ... other interface config\n    services:\n      - name: '@abtnode/auth-service'\n        config:\n          blockUnauthorized: true\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"设置 Auth Service 自动拦截后，需要在 ABT Node dashboard 中为 user 绑定相应接口的权限。（ABT Node 的权限控制基于 "},{"type":"element","tagName":"a","properties":{"href":"https://en.wikipedia.org/wiki/Role-based_access_control"},"children":[{"type":"text","value":"RBAC"}]},{"type":"text","value":"）"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-wrapper"],"style":"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1000px; "},"children":[{"type":"text","value":"\n      "},{"type":"element","tagName":"span","properties":{"className":["gatsby-resp-image-background-image"],"style":"padding-bottom: 55.199999999999996%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA40lEQVQoz5VRy3LDIAzk/z+vt15yySHTaXDACD3gksVKsCfTplO81gjZK2mlcEspr+taCiwxi7GZsIiowlKtAPwJD1ZmWlMoRGrWesddxHpvrQ8PV9iUc1yWI3kCJ6DgoKlS5db4dJaPT7GG4r9Wnn5Aw07Ga02/Ip8vj2+Ie2rwj0J2cs65Pu84hSUmKSTOwUQcUIfIhOcKUOXJGFTTpfDlWwsNJgjXGB3wXYLDm93bnpLQIh44sMdSL9grY+A/jvQ9wm1br/6fOchLpbKRj/28wdA12x7L2Ab2kPcX2bfgv90BvRt6CaEmU6cAAAAASUVORK5CYII='); background-size: cover; display: block;"},"children":[]},{"type":"text","value":"\n  "},{"type":"element","tagName":"img","properties":{"className":["gatsby-resp-image-image"],"alt":"permissions","title":"permissions","src":"/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/ea415/permissions.png","srcSet":["/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/41b2e/permissions.png 250w","/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/36a81/permissions.png 500w","/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/ea415/permissions.png 1000w","/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/5dce9/permissions.png 1500w","/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/25a1a/permissions.png 2000w","/abtnode/static/cd1c9e55b6ed5ab370e70e9fa07558d7/8638d/permissions.png 3544w"],"sizes":["(max-width:","1000px)","100vw,","1000px"],"style":"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;","loading":"lazy"},"children":[]},{"type":"text","value":"\n    "}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{"id":"设置邀请登录和开放登录","style":"position:relative;"},"children":[{"type":"element","tagName":"a","properties":{"href":"#%E8%AE%BE%E7%BD%AE%E9%82%80%E8%AF%B7%E7%99%BB%E5%BD%95%E5%92%8C%E5%BC%80%E6%94%BE%E7%99%BB%E5%BD%95","ariaLabel":"设置邀请登录和开放登录 permalink","className":["anchor","before"]},"children":[{"type":"element","tagName":"svg","properties":{"ariaHidden":"true","focusable":"false","height":"16","version":"1.1","viewBox":"0 0 16 16","width":"16"},"children":[{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","d":"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"},"children":[]}]}]},{"type":"text","value":"设置邀请登录和开放登录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"通过 "},{"type":"element","tagName":"code","properties":{},"children":[{"type":"text","value":"invitedUserOnly"}]},{"type":"text","value":" 配置邀请登录和开放登录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"pre","properties":{},"children":[{"type":"element","tagName":"code","properties":{"className":["language-yml"],"-":"","type:":"","web":""},"children":[{"type":"text","value":"interfaces:\n  - type: web\n    name: xxxx\n    # ... other interface config\n    services:\n      - name: '@abtnode/auth-service'\n        config:\n          invitedUserOnly: yes\n"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"invitedUserOnly"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"no: 开放登录 (默认)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"yes: 只能通过邀请链接登录"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"not-first: 只有第一个登录用户不需要通过邀请链接"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]}],"data":{"quirksMode":false}}}}},"pageContext":{"site":{"title":"ABT Node","description":"ABT Node Documentation","siteUrl":"https://docs.arcblock.io","logoUrl":"/abtnode/","sidebarWidth":360,"disableI18n":false,"showGetStarted":true,"defaultBanner":"/abtnode/og-banner.png"},"id":"8c73a316-1ad7-5457-bb69-a93bc320914f","language":"zh","locale":"zh","languages":[{"value":"en","text":"English"},{"value":"zh","text":"简体中文"}],"headings":[{"value":"入门","depth":2},{"value":"Demo","depth":2},{"value":"启用 Auth Service","depth":2},{"value":"配置","depth":2},{"value":"设置登录可访问\b","depth":2},{"value":"设置授权可访问\b\b\b\b","depth":2},{"value":"设置邀请登录和开放登录","depth":2}],"navItems":[{"group":"/home/runner/work/abtnode-docs/abtnode-docs/src","title":"ABT Node","priority":999,"link":"/"}],"version":"v0.2.20","official":true,"originalPath":"/zh/developer/auth-service","sidebarContent":[{"url":null,"title":null,"pages":[{"title":"ABT Node 文档","path":"/zh/"}]},{"url":"/zh/introduction","title":"节点入门","pages":[{"title":"节点功能概览","path":"/zh/introduction/abtnode-overview"},{"title":"如何获取 ABT 节点","path":"/zh/introduction/abtnode-setup"},{"title":"配置并启动 ABT 节点","path":"/zh/introduction/abtnode-access"}]},{"url":"/zh/marketplace","title":"应用市场","pages":[{"title":"查找和安装 Blocklet","path":"/zh/marketplace/find-and-install"},{"title":"升级或降级 Blocklet","path":"/zh/marketplace/upgrade-downgrade"}]},{"url":"/zh/blocklet","title":"应用管理","pages":[{"title":"基本管理操作","path":"/zh/blocklet/basic-operations"},{"title":"环境变量管理","path":"/zh/blocklet/environments"},{"title":"核心 Blocklets","path":"/zh/blocklet/core-blocklets"}]},{"url":"/zh/router","title":"路由管理","pages":[{"title":"什么是路由","path":"/zh/router/what-is-router"},{"title":"路由的基本用法","path":"/zh/router/basic-usage"},{"title":"给站点绑定域名以及启用 SSL","path":"/zh/router/bind-domain-and-ssl"},{"title":"localhost 证书","path":"/zh/router/certificates-for-localhost"}]},{"url":"/zh/deployment","title":"生产环境指南","pages":[{"title":"部署最佳实践","path":"/zh/deployment/best-practice"},{"title":"在 AWS 上部署","path":"/zh/deployment/from-aws-ami"},{"title":"运行在反向代理","path":"/zh/deployment/behind-reverse-proxy"},{"title":"在 Docker 中运行","path":"/zh/deployment/run-in-docker"}]},{"url":"/zh/misc","title":"其他功能","pages":[{"title":"节点配置","path":"/zh/misc/node-settings"},{"title":"成员管理","path":"/zh/misc/member-management"},{"title":"GraphQL 试验台","path":"/zh/misc/graphql-console"}]},{"url":"/zh/developer","title":"开发者指南","pages":[{"title":"配置开发环境","path":"/zh/developer/config-dev-env"},{"title":"ABT 节点 cli 工具","path":"/zh/developer/abtnode-cli"},{"title":"节点配置","path":"/zh/developer/configuration"},{"title":"节点存储目录详解","path":"/zh/developer/storage-structure"},{"title":"Blocklet 规范","path":"/zh/developer/blocklet-spec"},{"title":"创建静态 Blocklets","path":"/zh/developer/static-blocklets"},{"title":"创建 DApp Blocklets","path":"/zh/developer/dapp-blocklets"},{"title":"Blocklet 生命周期钩子","path":"/zh/developer/blocklet-hooks"},{"title":"打包 Blocklet","path":"/zh/developer/bundle-blocklets"},{"title":"发布 Blocklet","path":"/zh/developer/publish-blocklets"},{"title":"Blocklet 仓库","path":"/zh/developer/blocklet-registry"},{"title":"在 Codespaces 中开发 Blocklets","path":"/zh/developer/blocklet-codespaces"},{"title":"为 Blocklet 配置 Auth Service","path":"/zh/developer/auth-service"},{"title":"可组合的 Blocklet","path":"/zh/developer/composable-blocklet"},{"title":"Docker 镜像源列表","path":"/zh/developer/docker-registry"}]}],"communityPath":"https://community.arcblockio.cn","githubUrl":"https://github.com/ArcBlock/abtnode-docs/tree/master/src/developer/auth-service/index.zh.md"}},"staticQueryHashes":["1358860651","1619896071","1812186216","2194038815"]}