質問編集履歴

1

追記

2017/04/29 05:31

投稿

ssk
ssk

スコア332

test CHANGED
File without changes
test CHANGED
@@ -29,3 +29,65 @@
29
29
  cakephp3で特定のコントローラーのみBasic認証を行いたいです。
30
30
 
31
31
  本番環境はXサーバーです。
32
+
33
+
34
+
35
+
36
+
37
+ ###追記
38
+
39
+ ```
40
+
41
+ class SampleController extends AppController {
42
+
43
+
44
+
45
+ public function beforeFilter() {
46
+
47
+ parent::beforeFilter();
48
+
49
+
50
+
51
+ //Basic認証
52
+
53
+ $this->autoRender = false;
54
+
55
+
56
+
57
+ $loginId = 'hoge';
58
+
59
+ $loginPassword = 'hogehoge';
60
+
61
+ if (!isset($_SERVER['PHP_AUTH_USER'])) {
62
+
63
+ header('WWW-Authenticate: Basic realm="Please enter your ID and password"');
64
+
65
+ header('HTTP/1.0 401 Unauthorized');
66
+
67
+ die("id / password Required");
68
+
69
+ } else {
70
+
71
+ if ($_SERVER['PHP_AUTH_USER'] != $loginId || $_SERVER['PHP_AUTH_PW'] != $loginPassword) {
72
+
73
+ header('WWW-Authenticate: Basic realm="Please enter your ID and password"');
74
+
75
+ header('HTTP/1.0 401 Unauthorized');
76
+
77
+ die("Invalid id / password combination. Please try again");
78
+
79
+ }
80
+
81
+ }
82
+
83
+
84
+
85
+ $this->autoRender = true;
86
+
87
+ }
88
+
89
+ ```
90
+
91
+ [http://www.p-nt.com/technicblog/archives/2](http://www.p-nt.com/technicblog/archives/2)
92
+
93
+ ↑こちらの方法ではBasic認証自体は表示されるのですが、ユーザ名とパスワードを入れても、ページが表示されません。(開発環境ではうまくいきましたが、Xサーバーではダメでした。)