Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/LeanKit-Labs/aspxauth
Verify and decrypt .NET's .ASPXAUTH cookie from node.
https://github.com/LeanKit-Labs/aspxauth
Last synced: 12 days ago
JSON representation
Verify and decrypt .NET's .ASPXAUTH cookie from node.
- Host: GitHub
- URL: https://github.com/LeanKit-Labs/aspxauth
- Owner: LeanKit-Labs
- License: mit
- Created: 2016-09-28T15:02:19.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-07-18T20:31:24.000Z (over 1 year ago)
- Last Synced: 2024-10-01T09:11:19.093Z (about 1 month ago)
- Language: JavaScript
- Size: 516 KB
- Stars: 10
- Watchers: 11
- Forks: 9
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# aspxauth
**Note:** There are many variables, flags, and version-specific considerations for how .NET generates the `.aspxauth` cookie. This library works for our needs using older versions of the .NET framework. Your milage may vary.
Provides utilities to assist in generating, validating and decrypting .NET authorization tickets (usually set in the .ASPXAUTH cookie) for interoperation with .NET authentication.
## Setup
The module must be initialized with configuration that corresponds to your .NET configuration and the machine key used to generate the auth ticket.
- `validationMethod` (string): (default "sha1")
- `validationKey` (string): hex encoded key to use for signature validation
- `decryptionMethod` (string): (default "aes")
- `decryptionIV` (string): hex encoded initialization vector (defaults to a vector of zeros)
- `decryptionKey` (string): hex encoded key to use for decryption
- `ticketVersion` (integer): if specified then will be used to validate the ticket version
- `validateExpiration` (bool): (default `true`) if false then decrypted tickets will be returned even if past their expiration
- `encryptAsBuffer` (bool): (default `false`) if true, encrypt will return a buffer rather than a hex encoded string
- `defaultTTL` (integer): (default 24hrs) if provided is used as milliseconds from `issueDate` to expire generated tickets
- `defaultPersistent` (bool): (default `false`) if provided is used as default `isPersistent` value for generated tickets
- `defaultCookiePath` (string): (default "/") if provided is used as default `cookiePath` for generated tickets```js
// Configure
var aspxauth = require( "aspxauth" )( {
validationMethod: "sha1",
validationKey: process.env.DOTNET_VALIDATION_KEY,
decryptionMethod: "aes",
decryptionIV: process.env.DOTNET_DECRYPTION_IV,
decryptionKey: process.env.DOTNET_DECRYPTION_KEY
} );// Generate encrypted cookie
var encryptedCookieValue = aspxauth.encrypt( {
name: "[email protected]",
customData: "other data"
} );// Decrypt an existing cookie
var authTicket = aspxauth.decrypt( req.cookies[ ".ASPXAUTH" ] );
```### Supported validation methods
- sha1
### Supported decryption methods
- aes