mirror of
https://github.com/MeowLynxSea/Proksea.git
synced 2025-07-10 11:24:39 +00:00
103 lines
3.8 KiB
Markdown
103 lines
3.8 KiB
Markdown
# prismarine-auth
|
||
[](http://npmjs.com/package/prismarine-auth)
|
||
[](https://github.com/PrismarineJS/prismarine-auth/actions?query=workflow%3A%22CI%22)
|
||
[](https://discord.gg/GsEFRM8)
|
||
[](https://gitpod.io/#https://github.com/PrismarineJS/prismarine-auth)
|
||
|
||
Quickly and easily obtain auth tokens to authenticate with Microsoft/Xbox/Minecraft/Mojang
|
||
|
||
## Installation
|
||
```shell
|
||
npm install prismarine-auth
|
||
```
|
||
|
||
## Usage
|
||
|
||
### Authflow
|
||
**Parameters**
|
||
- username? {String} - Username for authentication
|
||
- cacheDirectory? {String | Function} - Where we will store your tokens (optional) or a factory function that returns a cache.
|
||
- options {Object?}
|
||
- [flow] {enum} Required if options is specified - see [API.md](docs/API.md) for options
|
||
- [forceRefresh] {boolean} - Clear all cached tokens for the specified `username` to get new ones on subsequent token requests
|
||
- [password] {string} - If passed we will do password based authentication.
|
||
- [authTitle] {string} - See the [API.md](docs/API.md)
|
||
- [deviceType] {string} - See the [API.md](docs/API.md)
|
||
- onMsaCode {Function} - (For device code auth) What we should do when we get the code. Useful for passing the code to another function.
|
||
|
||
### Examples
|
||
|
||
### getMsaToken
|
||
```js
|
||
const { Authflow, Titles } = require('prismarine-auth')
|
||
|
||
const userIdentifier = 'unique identifier for caching'
|
||
const cacheDir = './' // You can leave this as undefined unless you want to specify a caching directory
|
||
const flow = new Authflow(userIdentifier, cacheDir)
|
||
// Get a auth token, then log it
|
||
flow.getMsaToken().then(console.log)
|
||
```
|
||
|
||
**Note**: By default, this library will authenticate as Minecraft for Nintendo Switch, with a `flow` set to `live`. For non-Minecraft applications you should
|
||
register for Microsoft Azure Oauth token. See https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app#register-an-application for more information on obtaining an Azure token. You then use it with the `msal` flow like this:
|
||
|
||
```js
|
||
const flow = new Authflow(userIdentifier, cacheDir, { flow: 'msal', authTitle: '000-000-000-000' })
|
||
```
|
||
|
||
If `flow` is `live`, the default, then you can only specify existing Microsoft client IDs. This library exposes some default Microsoft client IDs under the exported `Titles` object. See the [types](./index.d.ts) for more information.
|
||
|
||
### getXboxToken
|
||
See [docs/API.md](docs/API.md)
|
||
|
||
|
||
### getMinecraftJavaToken
|
||
```js
|
||
const { Authflow, Titles } = require('prismarine-auth')
|
||
|
||
const userIdentifier = 'any unique identifier'
|
||
const cacheDir = './' // You can leave this as undefined unless you want to specify a caching directory
|
||
const flow = new Authflow(userIdentifier, cacheDir)
|
||
// Get a Minecraft Java Edition auth token, then log it
|
||
flow.getMinecraftJavaToken().then(console.log)
|
||
```
|
||
|
||
### Expected Response
|
||
```json
|
||
{
|
||
"token": "ey....................",
|
||
"entitlements": {},
|
||
"profile": {
|
||
"id": "b945b6ed99b548675309473a69661b9a",
|
||
"name": "Usname",
|
||
"skins": [ [Object] ],
|
||
"capes": []
|
||
}
|
||
}
|
||
```
|
||
|
||
### getMinecraftBedrockToken
|
||
See [docs/API.md](docs/API.md) and [example](examples).
|
||
|
||
### More
|
||
[View more examples here](https://github.com/PrismarineJS/prismarine-auth/tree/master/examples).
|
||
|
||
See the [types](./index.d.ts) to checkout the full API.
|
||
|
||
## API
|
||
|
||
See [docs/API.md](docs/API.md)
|
||
|
||
## Debugging
|
||
|
||
You can enable some debugging output using the `DEBUG` enviroment variable. Through node.js, you can add `process.env.DEBUG = 'prismarine-auth'` at the top of your code.
|
||
|
||
|
||
## Testing
|
||
|
||
Simply run `npm test` or `yarn test`
|
||
|
||
## License
|
||
|
||
[MIT](LICENSE)
|