2015年4月27日 星期一

好文收集:JWT in Angular

Authentication made simple in Single Page AngularJS Applications


Github : angularjs-jwt-authentication-tutorial

Slider : Make your SPA a maximum security prison

相關套件:

angular-storage

angular-jwt

apache 修正 for JWT token

一般取得 token 之後,會在向 server 發出 request 時將 token 附加於 headers 送出:

Authorization: Bearer {yourtokenhere}

在 Laravel 之 homestead 環境下(web server 為 Nginx)是正常的,如果是 apache 無法正常動作(原因:參考資料)。

修正方式1:

於 apache 設定中加入以下設定:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

我是加在 Laravel 的 public/.htaccess

修正方式2:

將 token 附加在 query string 送出


參考資料:

https://github.com/tymondesigns/jwt-auth/wiki/Authentication

2015年4月20日 星期一

為 Laravel5 新增 email 啟動帳號功能

預設 Laravel 5 內建的註冊功能其行為是註冊後立即登入,下面這篇文章是更改成註冊後寄含有啟動連結的 email,使用者須從 email 進行啟動帳號的動作。

http://www.codeanchor.net/blog/email-activation-laravel/

2015年4月18日 星期六

問題解決: Only variables should be passed by reference

最近在 Laravel 5 中使用 lightopenid 實作新北市 openid 時遇到 "Only variables should be passed by reference" 的問題,查出是取得自訂帳號的程式碼的問題。

end(array_values(explode('/', $openid->identity)))

查了一下文件,原因如下:
因為傳入 end 的陣列是傳 reference,只有真正的變數可以傳 reference,不可以是經由 function 回傳之陣列

解法:
分兩步驟執行,先取得陣列,再傳入 end


$identity = array_values(explode('/', $openid->identity)); //取得陣列
$username = end($identity); //取得陣列最後一個元素值

2015年4月15日 星期三

Laravel5 中取得 config 變數值


// config/jwt.php
  'secret' =>  env('JWT_SECRET', 'mysecret'),

要取得 secret 之設定值:

$secret = config('jwt.secret');


2015年4月7日 星期二