{"id":2694142,"date":"2025-02-21T15:30:17","date_gmt":"2025-02-21T23:30:17","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2694142"},"modified":"2025-04-02T16:07:05","modified_gmt":"2025-04-02T23:07:05","slug":"introducing-two-authentication-options-in-open-source-developer-guides","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides","title":{"rendered":"Introducing Two Authentication Options in Open Source Developer Guides"},"author":360822,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[778392,768312,778372,778382,763382],"industry":[],"product":[761642,36551],"class_list":["post-2694142","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-cesiumjs","tag-developer-guide","tag-esri-leaflet","tag-maplibre","tag-openlayers","product-platform","product-arcgis-online"],"acf":{"authors":[{"ID":360822,"user_firstname":"Sheryl","user_lastname":"Tania","nickname":"Sheryl Tania","user_nicename":"stania","display_name":"Sheryl Tania","user_email":"stania@esri.com","user_url":"","user_registered":"2024-08-27 19:29:29","user_description":"Sheryl Tania is a product engineer on the Developer Experience team.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/profile-465x465.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn about the new authentication options, API key and user authentication, in the open source developer guides.","flexible_content":[{"acf_fc_layout":"image","image":{"ID":2694362,"id":2694362,"title":"dual-auth-cover","filename":"dual-auth-cover.png","filesize":549643,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\/dual-auth-cover","alt":"","author":"360822","description":"","caption":"","name":"dual-auth-cover","status":"inherit","uploaded_to":2694142,"date":"2025-02-21 00:09:17","modified":"2025-02-21 00:09:17","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2564,"height":1604,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover.png","medium-width":417,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover.png","medium_large-width":768,"medium_large-height":480,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover.png","large-width":1726,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover-1536x961.png","1536x1536-width":1536,"1536x1536-height":961,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover-2048x1281.png","2048x2048-width":2048,"2048x2048-height":1281,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover-743x465.png","card_image-width":743,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/dual-auth-cover-1726x1080.png","wide_image-width":1726,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/esri-leaflet\/maps\/display-a-map\/"},{"acf_fc_layout":"content","content":"<p><span data-contrast=\"auto\">We\u2019re excited to announce an enhancement to our tutorials in the open-source developer guides! The tutorials now support <\/span><span data-contrast=\"auto\">two authentication options<\/span><span data-contrast=\"auto\">: <\/span><b><span data-contrast=\"auto\">API key authentication<\/span><\/b><span data-contrast=\"auto\"> and <\/span><b><span data-contrast=\"auto\">user authentication<\/span><\/b><span data-contrast=\"auto\">. This update gives you the flexibility to choose the authentication method that best suits your application and security needs.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">In this blog post, we\u2019ll walk you through the details of both options and what they mean for your development experience.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<h2><span class=\"NormalTextRun SCXW179467640 BCX0\">Option 1: <\/span><span class=\"NormalTextRun SCXW179467640 BCX0\">API key authentication<\/span><\/h2>\n"},{"acf_fc_layout":"image","image":{"ID":2694352,"id":2694352,"title":"api-key-auth-tutorial","filename":"api-key-auth-tutorial.png","filesize":551207,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\/api-key-auth-tutorial","alt":"","author":"360822","description":"","caption":"","name":"api-key-auth-tutorial","status":"inherit","uploaded_to":2694142,"date":"2025-02-21 00:09:11","modified":"2025-02-21 00:09:11","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2564,"height":1604,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial.png","medium-width":417,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial.png","medium_large-width":768,"medium_large-height":480,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial.png","large-width":1726,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial-1536x961.png","1536x1536-width":1536,"1536x1536-height":961,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial-2048x1281.png","2048x2048-width":2048,"2048x2048-height":1281,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial-743x465.png","card_image-width":743,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/api-key-auth-tutorial-1726x1080.png","wide_image-width":1726,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/esri-leaflet\/maps\/display-a-map\/"},{"acf_fc_layout":"content","content":"<p><span class=\"TextRun SCXW133422950 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW133422950 BCX0\">The first <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">option<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\"> is <\/span><\/span><a class=\"Hyperlink SCXW133422950 BCX0\" href=\"https:\/\/developers.arcgis.com\/documentation\/security-and-authentication\/api-key-authentication\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW133422950 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW133422950 BCX0\" data-ccp-charstyle=\"Hyperlink\">API key authentication<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\" data-ccp-charstyle=\"Hyperlink\">.<\/span><\/span><\/a><span class=\"TextRun SCXW133422950 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"> <span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW133422950 BCX0\">In<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\"> the tutorial, you <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">us<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">e <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">an API key to authenticate requests to ArcGIS <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">content, services, and resources<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">. <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">The<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\"> demo app<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\"> at the top of the <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">tutorial<\/span> <span class=\"NormalTextRun SCXW133422950 BCX0\">opens directly in your browser and is ready for you to interact with. You can also view and <\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">modify<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\"> the demo app\u2019s code in <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW133422950 BCX0\">CodePen<\/span><span class=\"NormalTextRun SCXW133422950 BCX0\">.\u00a0<\/span><\/span><span class=\"EOP SCXW133422950 BCX0\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"auto\">How to get started<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Go to any tutorial for <\/span><a href=\"https:\/\/developers.arcgis.com\/esri-leaflet\/\"><span data-contrast=\"none\">Esri Leaflet<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/openlayers\/tutorials\/\"><span data-contrast=\"none\">OpenLayers<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/tutorials\/\"><span data-contrast=\"none\">MapLibre GL JS<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/cesiumjs\/tutorials\/\"><span data-contrast=\"none\">CesiumJS<\/span><\/a><span data-contrast=\"auto\">, or <\/span><a href=\"https:\/\/developers.arcgis.com\/arcgis-rest-js\/tutorials\/\"><span data-contrast=\"none\">ArcGIS REST JS<\/span><\/a><span data-contrast=\"auto\">.<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">At the top of the tutorial, select \u201cAPI key authentication.\u201d\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Set up a CodePen project to access location services.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Create an API key with the appropriate privileges in your ArcGIS account.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Use the API key to access ArcGIS content, services, and resources.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Run the app in CodePen.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">This option is ideal if you&#8217;re new to ArcGIS and location services. If you\u2019re simply looking for a complete solution of the tutorial, go to the \u201cAPI key authentication\u201d link under <\/span><b><span data-contrast=\"auto\">Solutions.<\/span><\/b><span data-ccp-props=\"{&quot;335559685&quot;:0}\">\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<h2><span class=\"TextRun MacChromeBold SCXW64855516 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW64855516 BCX0\">Option 2: U<\/span><span class=\"NormalTextRun SCXW64855516 BCX0\">ser authentication<\/span><\/span><\/h2>\n"},{"acf_fc_layout":"image","image":{"ID":2694402,"id":2694402,"title":"user-auth-tutorial","filename":"user-auth-tutorial.png","filesize":580301,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\/user-auth-tutorial","alt":"","author":"360822","description":"","caption":"","name":"user-auth-tutorial","status":"inherit","uploaded_to":2694142,"date":"2025-02-21 00:13:37","modified":"2025-02-21 00:13:37","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2564,"height":1604,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial.png","medium-width":417,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial.png","medium_large-width":768,"medium_large-height":480,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial.png","large-width":1726,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial-1536x961.png","1536x1536-width":1536,"1536x1536-height":961,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial-2048x1281.png","2048x2048-width":2048,"2048x2048-height":1281,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial-743x465.png","card_image-width":743,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/user-auth-tutorial-1726x1080.png","wide_image-width":1726,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/esri-leaflet\/maps\/display-a-map\/"},{"acf_fc_layout":"content","content":"<p><span data-contrast=\"auto\">The second option is <\/span><a href=\"https:\/\/developers.arcgis.com\/documentation\/security-and-authentication\/user-authentication\/\"><span data-contrast=\"none\">user authentication<\/span><i><span data-contrast=\"none\">.<\/span><\/i><\/a><span data-contrast=\"auto\"> In the tutorial, you will use OAuth credentials to create a sign-in experience for the app users. The app will access ArcGIS content, services, and resources on their behalf. When you click <\/span><b><span data-contrast=\"auto\">Start demo <\/span><\/b><span data-contrast=\"auto\">on the demo app at the top of the tutorial, you will be prompted to sign in with your ArcGIS account credentials. Once authenticated, you will be able to view the demo app and interact with it.\u00a0 <\/span><span data-contrast=\"auto\">Unlike API key authentication, you <\/span><i><span data-contrast=\"auto\">won\u2019t <\/span><\/i><span data-contrast=\"auto\">be able to view or modify the demo app\u2019s code in CodePen.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">How to get started<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span data-contrast=\"auto\">Go to any tutorial for <\/span><a href=\"https:\/\/developers.arcgis.com\/esri-leaflet\/\"><span data-contrast=\"none\">Esri Leaflet<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/openlayers\/tutorials\/\"><span data-contrast=\"none\">OpenLayers<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/maplibre-gl-js\/tutorials\/\"><span data-contrast=\"none\">MapLibre GL JS<\/span><\/a><span data-contrast=\"auto\">, <\/span><a href=\"https:\/\/developers.arcgis.com\/cesiumjs\/tutorials\/\"><span data-contrast=\"none\">CesiumJS<\/span><\/a><span data-contrast=\"auto\">, or <\/span><a href=\"https:\/\/developers.arcgis.com\/arcgis-rest-js\/tutorials\/\"><span data-contrast=\"none\">ArcGIS REST JS<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span data-contrast=\"auto\">At the top of the tutorial, select \u201cUser authentication.\u201d\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span data-contrast=\"auto\">Download the starter app containing the user authentication logic and unzip it.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span data-contrast=\"auto\">Create OAuth credentials in your ArcGIS account.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span data-contrast=\"auto\">Use the OAuth credentials in your app to access ArcGIS content, services, and resources.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><span data-contrast=\"auto\">Run the app on your local machine.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">This option is ideal if you want your app to remain private and maintain control over who can access it. If you\u2019re simply looking for a complete solution of the tutorial, click \u201cUser authentication\u201d under <\/span><b><span data-contrast=\"auto\">Solutions<\/span><\/b><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<h2><b><span data-contrast=\"auto\">So, what\u2019s the difference?<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Here\u2019s a quick summary of the differences between the two authentication methods:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">If you choose API key authentication in the tutorial, you will<\/span><\/b><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Create an API key credential in your portal.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Run the app in CodePen (or any other online code editor).<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Skip the sign-in process to run the demo app.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">View the tutorial solution in a pen format on CodePen.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279,&quot;335559991&quot;:360}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"auto\">If you choose user authentication in the tutorial, you will<\/span><\/b><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Create an OAuth 2.0 credential in your portal.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Run the app in your local IDE, such as Visual Studio Code.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Sign in to view and interact with the demo app.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"-\" data-font=\"Aptos\" data-listid=\"9\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">Download the tutorial solution in a zip format.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">The good news? No matter which option you choose, you\u2019ll be able to access the same location services and achieve the same results. Pick the method that works best for you and start building!<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<h2><b><span data-contrast=\"none\">We want your feedback!<\/span><\/b><span data-contrast=\"none\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"none\">Please take our <\/span><a href=\"https:\/\/survey123.arcgis.com\/share\/ea770acb3ef94acfadd6dfd867a8117c\"><span data-contrast=\"none\">survey<\/span><\/a><span data-contrast=\"none\"> to let us know if the tutorials were helpful and how we can improve them. Happy coding!<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n"}],"related_articles":"","show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/blog-card-1-1.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/blog-banner-1.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing Two Authentication Options in Open Source Developer Guides<\/title>\n<meta name=\"description\" content=\"Explore flexible authentication methods, including API key and user authentication with OAuth 2.0, in the open source developer guides.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Two Authentication Options in Open Source Developer Guides\" \/>\n<meta property=\"og:description\" content=\"Explore flexible authentication methods, including API key and user authentication with OAuth 2.0, in the open source developer guides.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-02T23:07:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\"},\"author\":{\"name\":\"Sheryl Tania\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a5405e67f8f8ba5ae1a34e7fb59c7721\"},\"headline\":\"Introducing Two Authentication Options in Open Source Developer Guides\",\"datePublished\":\"2025-02-21T23:30:17+00:00\",\"dateModified\":\"2025-04-02T23:07:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\"},\"wordCount\":9,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"cesiumjs\",\"developer guide\",\"esri leaflet\",\"maplibre\",\"openlayers\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\",\"name\":\"Introducing Two Authentication Options in Open Source Developer Guides\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-02-21T23:30:17+00:00\",\"dateModified\":\"2025-04-02T23:07:05+00:00\",\"description\":\"Explore flexible authentication methods, including API key and user authentication with OAuth 2.0, in the open source developer guides.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Two Authentication Options in Open Source Developer Guides\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a5405e67f8f8ba5ae1a34e7fb59c7721\",\"name\":\"Sheryl Tania\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/profile-465x465.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/profile-465x465.jpeg\",\"caption\":\"Sheryl Tania\"},\"description\":\"Sheryl Tania is a product engineer on the Developer Experience team.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/stania\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introducing Two Authentication Options in Open Source Developer Guides","description":"Explore flexible authentication methods, including API key and user authentication with OAuth 2.0, in the open source developer guides.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides","og_locale":"en_US","og_type":"article","og_title":"Introducing Two Authentication Options in Open Source Developer Guides","og_description":"Explore flexible authentication methods, including API key and user authentication with OAuth 2.0, in the open source developer guides.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-04-02T23:07:05+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides"},"author":{"name":"Sheryl Tania","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a5405e67f8f8ba5ae1a34e7fb59c7721"},"headline":"Introducing Two Authentication Options in Open Source Developer Guides","datePublished":"2025-02-21T23:30:17+00:00","dateModified":"2025-04-02T23:07:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides"},"wordCount":9,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["cesiumjs","developer guide","esri leaflet","maplibre","openlayers"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides","name":"Introducing Two Authentication Options in Open Source Developer Guides","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-02-21T23:30:17+00:00","dateModified":"2025-04-02T23:07:05+00:00","description":"Explore flexible authentication methods, including API key and user authentication with OAuth 2.0, in the open source developer guides.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/platform\/developers\/introducing-two-authentication-options-in-open-source-developer-guides#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Two Authentication Options in Open Source Developer Guides"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a5405e67f8f8ba5ae1a34e7fb59c7721","name":"Sheryl Tania","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/profile-465x465.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/09\/profile-465x465.jpeg","caption":"Sheryl Tania"},"description":"Sheryl Tania is a product engineer on the Developer Experience team.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/stania"}]}},"text_date":"February 21, 2025","author_name":"Sheryl Tania","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/stania","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/02\/blog-banner-1.png","primary_product":"ArcGIS Location Platform","tag_data":[{"term_id":778392,"name":"cesiumjs","slug":"cesiumjs","term_group":0,"term_taxonomy_id":778392,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":768312,"name":"developer guide","slug":"developer-guide","term_group":0,"term_taxonomy_id":768312,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw"},{"term_id":778372,"name":"esri leaflet","slug":"esri-leaflet","term_group":0,"term_taxonomy_id":778372,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":778382,"name":"maplibre","slug":"maplibre","term_group":0,"term_taxonomy_id":778382,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":763382,"name":"openlayers","slug":"openlayers","term_group":0,"term_taxonomy_id":763382,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":422,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":214,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2425,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=platform","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2694142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/360822"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2694142"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2694142\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2694142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2694142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2694142"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2694142"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2694142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}