1"use strict";(self.webpackChunkAuthressKnowledgeBase=self.webpackChunkAuthressKnowledgeBase||[]).push([[1386],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var c=o.createContext({}),p=function(e){var t=o.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return o.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(r),m=n,y=d["".concat(c,".").concat(m)]||d[m]||l[m]||a;return r?o.createElement(y,i(i({ref:t},u),{},{components:r})):o.createElement(y,i({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:n,i[1]=s;for(var p=2;p<a;p++)i[p]=r[p];return o.createElement.apply(null,i)}return o.createElement.apply(null,r)}d.displayName="MDXCreateElement"},81969:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var o=r(87462),n=(r(67294),r(3905));const a={hide_table_of_contents:!0,title:"So you want to build your own authorization?",authors:"warren-parad",description:"When writing new software, it's hard to notice complexity creeping in. Authorization is one of the aspects where things start deceptively simple and before you notice, you end up in a zoombombing scandal.",image:"./assets/path.jpg",image_alt:"Authorization may seem simple but always ends up more complex than you guess",date:"2020-05-29T10:00"},i=void 0,s={permalink:"/knowledge-base/articles/so-you-want-your-own-authorization",source:"@site/articles/so-you-want-your-own-authorization.md",title:"So you want to build your own authorization?",description:"When writing new software, it's hard to notice complexity creeping in. Authorization is one of the aspects where things start deceptively simple and before you notice, you end up in a zoombombing scandal.",date:"2020-05-29T10:00:00.000Z",formattedDate:"May 29, 2020",tags:[],readingTime:3.1166666666666667,hasTruncateMarker:!0,authors:[{name:"Warren Parad",url:"https://warrenparad.net",page:!0,socials:{bluesky:"wparad.bsky.social",github:"wparad",linkedin:"warren-parad"},imageURL:"https://authress.io/knowledge-base/img/authors/warren-parad.jpg",key:"warren-parad"}],frontMatter:{hide_table_of_contents:!0,title:"So you want to build your own authorization?",authors:"warren-parad",description:"When writing new software, it's hard to notice complexity creeping in. Authorization is one of the aspects where things start deceptively simple and before you notice, you end up in a zoombombing scandal.",image:"./assets/path.jpg",image_alt:"Authorization may seem simple but always ends up more complex than you guess",date:"2020-05-29T10:00"},prevItem:{title:"Zoombombing - a case study of data protection",permalink:"/knowledge-base/articles/zoom-case-study"},nextItem:{title:"Why companies gamble on user data privacy",permalink:"/knowledge-base/articles/companies-gamble-on-privacy"}},c={image:r(44367).Z,authorsImageUrls:[void 0]},p=[],u={toc:p};
1function l(e){let{components:t,...r}=e;return(0,n.kt)("wrapper",(0,o.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Perhaps it happened to you. You're working on a project, developing some fancy software where users can do all sorts of cool things.\nAs part of this work, your software needs to be able to recognize your users. Perhaps there's something your users store for later, some content they create, or you simply need to know who paid and who didn't."))}l.isMDXComponent=!0},44367:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/path-f065a9fc8eaaece3ff2988c46fce73b1.jpg"}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.