Public Access
feat(psn): link PlayStation account and import played games
The NPSSO is used once to get a refresh token; only that token is stored, sealed with AES-GCM (SecretBox, key APP_PSN_TOKEN_KEY; no key = feature off). One-time import of played PS4/PS5 titles through the import pipeline as source PSN. Unlink keeps the games. One PSN call per user at a time. IGDB search now sends UTF-8, so non-ASCII names like "Yōtei" match again.
This commit is contained in:
1 parent
e87f40bba0
commit
7ac887ed5a
72 files changed
+2407
-78
No files matched your search
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"urlPath": "/igdb/games",
|
||||
"bodyPatterns": [
|
||||
{
|
||||
"contains": "search \"Mega Man Legacy"
|
||||
}
|
||||
]
|
||||
},
|
||||
"response": {
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
"bodyFileName": "igdb-game-search-psn-mega-man-legacy.json"
|
||||
},
|
||||
"priority": 4
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"urlPath": "/igdb/games",
|
||||
"bodyPatterns": [
|
||||
{
|
||||
"contains": "search \"Ghost of Tsushima"
|
||||
}
|
||||
]
|
||||
},
|
||||
"response": {
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
"bodyFileName": "igdb-game-search-psn-tsushima.json"
|
||||
},
|
||||
"priority": 4
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"urlPath": "/igdb/games",
|
||||
"bodyPatterns": [
|
||||
{
|
||||
"contains": "search \"Ghost of Yōtei"
|
||||
}
|
||||
]
|
||||
},
|
||||
"response": {
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
"bodyFileName": "igdb-game-search-psn-yotei.json"
|
||||
},
|
||||
"priority": 4
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"urlPath": "/psn/auth/authorize"
|
||||
},
|
||||
"response": {
|
||||
"status": 302,
|
||||
"headers": {
|
||||
"Location": "com.scee.psxandroid.scecompcall://redirect/?error=invalid_grant"
|
||||
}
|
||||
},
|
||||
"priority": 10
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"urlPath": "/psn/auth/authorize",
|
||||
"headers": {
|
||||
"Cookie": {
|
||||
"contains": "npsso=local-npsso"
|
||||
}
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"status": 302,
|
||||
"headers": {
|
||||
"Location": "com.scee.psxandroid.scecompcall://redirect/?code=local-code&cid=local"
|
||||
}
|
||||
},
|
||||
"priority": 5
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"urlPath": "/psn/gamelist/v2/users/me/titles"
|
||||
},
|
||||
"response": {
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
"bodyFileName": "psn-gamelist.json"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"request": {
|
||||
"method": "POST",
|
||||
"urlPath": "/psn/auth/token"
|
||||
},
|
||||
"response": {
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
"bodyFileName": "psn-token.json"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user