アクセストークンは 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
 | 
			
		||||
				| 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
 | 
			
		||||
 | 
			
		||||
	p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>_userkey</code>(「自分のアクセストークンを取得したい場合」の方法で取得したアクセストークンの場合は<code>i</code>)としてパラメータに含めるだけです。
 | 
			
		||||
	p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>i</code>としてパラメータに含めるだけです。
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,10 +20,14 @@ export interface IAuthContext {
 | 
			
		|||
	isSecure: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default (req: express.Request) =>
 | 
			
		||||
	new Promise<IAuthContext>(async (resolve, reject) => {
 | 
			
		||||
	const token = req.body['i'];
 | 
			
		||||
	if (token) {
 | 
			
		||||
export default (req: express.Request) => new Promise<IAuthContext>(async (resolve, reject) => {
 | 
			
		||||
	const token = req.body['i'] || req.body['_userkey']; // そのうち_userkeyは削除
 | 
			
		||||
 | 
			
		||||
	if (token == null) {
 | 
			
		||||
		return resolve({ app: null, user: null, isSecure: false });
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (token[0] == '!') {
 | 
			
		||||
		const user = await User
 | 
			
		||||
			.findOne({ token: token });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -36,12 +40,9 @@ export default (req: express.Request) =>
 | 
			
		|||
			user: user,
 | 
			
		||||
			isSecure: true
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const userkey = req.headers['userkey'] || req.body['_userkey'];
 | 
			
		||||
	if (userkey) {
 | 
			
		||||
	} else {
 | 
			
		||||
		const userkeyDoc = await Userkey.findOne({
 | 
			
		||||
			key: userkey
 | 
			
		||||
			key: token
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if (userkeyDoc === null) {
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +57,4 @@ export default (req: express.Request) =>
 | 
			
		|||
 | 
			
		||||
		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);
 | 
			
		||||
 | 
			
		||||
	// Generate secret
 | 
			
		||||
	const secret = rndstr('a-zA-Z0-9', 32);
 | 
			
		||||
	const secret = '!' + rndstr('a-zA-Z0-9', 32);
 | 
			
		||||
 | 
			
		||||
	// Create account
 | 
			
		||||
	const inserted = await User.insert({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue