package Ġcom . mart in . config Ċ Ċ import Ġcom . auth 0 . jwt . JWT Ċ import Ġcom . auth 0 . jwt . algorithms . Algorithm Ċ import Ġcom . types afe . config . Config Factory Ċ import Ġio . ktor . config . Ho con Application Config Ċ import Ġio . ktor . util . K tor Experimental API Ċ Ċ object ĠApp Config Ġ{ ĊĊĠĠĠ Ġ@ K tor Experimental API ĊĠĠĠ Ġprivate Ġval Ġconfig Ġ= ĠHo con Application Config ( Config Factory . load ()) ĊĊĠĠĠ Ġval ĠappName Ġ: ĠString Ġ= Ġconfig . property (" ktor . projectName "). getString () ĊĊĠĠĠ Ġval Ġenv Ġ: ĠString Ġ= ĠSystem . getProperty (" ENV ") Ġ?: Ġ" dev " ĊĊĠĠĠ Ġval Ġmongodb Ġ: ĠString Ġ= Ġconfig . property OrNull (" ktor . database . mongo .$ env ") ?. getString () Ġ?: Ġ"$ appName - dev " ĊĊĠĠĠ Ġval Ġjwt Secret Ġ: ĠString Ġ= Ġconfig . property OrNull (" ktor . auth . jwt . secret ") ?. getString () Ġ?: Ġ"$ appName - jwt - secret " ĊĊĠĠĠ Ġval Ġport Ġ: ĠString Ġ= Ġconfig . property OrNull (" ktor . deployment . port ") ?. getString () Ġ?: Ġ" 8 0 " ĊĊĠĠĠ Ġval Ġshut Down Url Ġ: ĠString Ġ= Ġconfig . property (" ktor . deployment . shutdown . url "). getString () Ċ } Ċ Ċ // ĠWork around Ġfor Ġbinding Ġissue Ċ object ĠSimple JWT Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsecret Ġ= ĠApp Config . jwt Secret ĊĠĠĠ Ġprivate Ġval Ġalgorithm Ġ= ĠAlgorithm . HMAC 2 5 6 ( secret ) ĊĠĠĠ Ġval Ġverifier Ġ= ĠJWT . require ( algorithm ). build () ĊĠĠĠ Ġfun Ġsign ( name : ĠString ): ĠString Ġ= ĠJWT . create (). with Claim (" name ", Ġname ). sign ( algorithm ) Ċ }