##概要
現在、Unityを使用したサーバーサイドアプリを作成しており、RailsAPIで発行したセッションを丁度ブラウザにおけるクッキーのように生成されたセッション情報を扱い、それを利用してサーバーとのトークン認証を実現したいと考えております。
セッションを受け取るための初回のリクエストとしてクライアント側でユーザーがフォームに入力した情報をGET通信に付与して合致するユーザー情報を取得したいのですが、取得できません。ご教示願えますと幸いです。
##疑問点
①認証に必要な情報をGET通信の際にリクエストヘッダー付与するにはどのようにすれば良いか。
②現在のコードでリクエストを送ったときに、ヘッダーに付与した情報がnilになってしまうのでどのように設定すれば良いか。
以上、何卒宜しくお願い申し上げます。
##通信部分コード
Unity3d(c#) 初回リクエスト
void Start(){ StartCoroutine("Get"); } //(通信部分) private IEnumerator Get(){ Dictionary<string, string> header = new Dictionary<string, string>(); header.Add("Accepted-Language", "ja"); // 初回リクエスト時にユーザー情報をヘッダーに付与し、GET通信をする。 header.Add("name", sessionName); header.Add("password", sessionPassword); WWW www = new WWW(url); yield return www;
##サーバーサイドの処理
Rails API app/controllers/sessions#show
ヘッダーに付与された:nameと:passwordを元にユーザーを特定する。
この結果を以降クライアント側で保持する。
def show @user = User.find_by(name: params[:name]) return invalid_name unless @user if @user.valid_password?(params[:password]) render json: @user, serializer: SessionSerializer, root: nil else invalid_password end end
##GET通信をした時の結果
Processing by SessionsController#show as */* User Load (2.4ms) SELECT `users`.* FROM `users` WHERE `users`.`name` IS NULL LIMIT 1 Completed 200 OK in 9ms (Views: 0.4ms | ActiveRecord: 5.0ms)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/29 05:19
2017/09/29 08:09