アクセストークンは i に統一
トークンの先頭に ! がプリフィックスされているかどうかでユーザー固有のトークンかどうか判別する
This commit is contained in:
		
							parent
							
								
									a63de6d776
								
							
						
					
					
						commit
						fa591e5c9b
					
				
					 3 changed files with 12 additions and 13 deletions
				
			
		|  | @ -71,4 +71,4 @@ block content | ||||||
| 				br | 				br | ||||||
| 				| 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます! | 				| 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます! | ||||||
| 
 | 
 | ||||||
| 	p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>_userkey</code>(「自分のアクセストークンを取得したい場合」の方法で取得したアクセストークンの場合は<code>i</code>)としてパラメータに含めるだけです。 | 	p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>i</code>としてパラメータに含めるだけです。 | ||||||
|  |  | ||||||
|  | @ -20,10 +20,14 @@ export interface IAuthContext { | ||||||
| 	isSecure: boolean; | 	isSecure: boolean; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export default (req: express.Request) => | export default (req: express.Request) => new Promise<IAuthContext>(async (resolve, reject) => { | ||||||
| 	new Promise<IAuthContext>(async (resolve, reject) => { | 	const token = req.body['i'] || req.body['_userkey']; // そのうち_userkeyは削除
 | ||||||
| 	const token = req.body['i']; | 
 | ||||||
| 	if (token) { | 	if (token == null) { | ||||||
|  | 		return resolve({ app: null, user: null, isSecure: false }); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if (token[0] == '!') { | ||||||
| 		const user = await User | 		const user = await User | ||||||
| 			.findOne({ token: token }); | 			.findOne({ token: token }); | ||||||
| 
 | 
 | ||||||
|  | @ -36,12 +40,9 @@ export default (req: express.Request) => | ||||||
| 			user: user, | 			user: user, | ||||||
| 			isSecure: true | 			isSecure: true | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} else { | ||||||
| 
 |  | ||||||
| 	const userkey = req.headers['userkey'] || req.body['_userkey']; |  | ||||||
| 	if (userkey) { |  | ||||||
| 		const userkeyDoc = await Userkey.findOne({ | 		const userkeyDoc = await Userkey.findOne({ | ||||||
| 			key: userkey | 			key: token | ||||||
| 		}); | 		}); | ||||||
| 
 | 
 | ||||||
| 		if (userkeyDoc === null) { | 		if (userkeyDoc === null) { | ||||||
|  | @ -56,6 +57,4 @@ export default (req: express.Request) => | ||||||
| 
 | 
 | ||||||
| 		return resolve({ app: app, user: user, isSecure: false }); | 		return resolve({ app: app, user: user, isSecure: false }); | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	return resolve({ app: null, user: null, isSecure: false }); |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -48,7 +48,7 @@ export default async (req: express.Request, res: express.Response) => { | ||||||
| 	const hash = bcrypt.hashSync(password, salt); | 	const hash = bcrypt.hashSync(password, salt); | ||||||
| 
 | 
 | ||||||
| 	// Generate secret
 | 	// Generate secret
 | ||||||
| 	const secret = rndstr('a-zA-Z0-9', 32); | 	const secret = '!' + rndstr('a-zA-Z0-9', 32); | ||||||
| 
 | 
 | ||||||
| 	// Create account
 | 	// Create account
 | ||||||
| 	const inserted = await User.insert({ | 	const inserted = await User.insert({ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue